Hanan Farahdel
7 سال پیش توسط Hanan Farahdel مطرح شد
2 پاسخ

مشکل در اجرای اکشن در redux

با سلام
بنده تازه کار با ری اکت و ری داکس رو شروع کردم و اولین پروژمو دارم سعی میکنم اجرا کنم،لطفا کمکم کنید

اکشن رو به اینصورت ایجاد کردم

export const SetOnlineUser=(_apiKey)=>({
type:SET_ONLINRUSER,
apiKey:apiKey
});
این هم reducer
const UserOprations = (state=[],action)=>{
switch(action.type){
case SET_ONLINRUSER:
return[
...state,
{OnlineUser:{
apiKey:action.apiKey
}}
]
case GET_ONLINRUSER:
return[
state.OnlineUser
]
default:
return state;
}
};
reducer هارو هم به اینصورت ecombin کردم
const reducers = combineReducers({
userOprations
});
export default reducers;

این هم store

import { createStore } from 'redux';
import reducers from './Reducers/ReducerCombiner';
const Store = createStore(reducers);
export default Store;

این هم کدی که از کامپونت میخوام به ری داکس دسترسی پیدا کنم

class Starter extends Component {
componentDidMount(){
const {onTodoClick,OnlineUser } = this.props;
() => onTodoClick("test api");
setTimeout(() => {
console.log(OnlineUser);
}, 1000);
}
onClick(){
const {onTodoClick,OnlineUser } = this.props;
() => onTodoClick("testApi");
setTimeout(() => {
console.log(OnlineUser);
}, 1000);
}
render() {
const { component : Component ,...restProps } = this.props;
return(
<div>
<button onClick={this.onClick.bind(this)}>Click On Me</button>
</div>
);
}
}
const mapStateToProps = (state) => ({
OnlineUser : state
});
const mapDispatchToProps = (dispatch) => {
return {
onTodoClick : (key) => {
dispatch(SetOnlineUser(key))
}
}
};
export default connect(mapStateToProps,mapDispatchToProps)(Starter);

ولی الان وقتی روی باتن کلیک میکنم props پروپ رو خالی برمیگردونه


css
تگ‌های محبوب
ثبت پرسش جدید
Amin Khademian
تخصص : Front-End Developer
@khademianamin 7 سال پیش مطرح شد
0

تو همون خط اول یه اشتباه syntax ی دارین :

export const SetOnlineUser=(_apiKey)=>({
type:SET_ONLINRUSER,
apiKey:apiKey
});

به این شکل بنویسید :

export const SetOnlineUser=(apiKey)=>({
type:SET_ONLINRUSER,
apiKey
});

Hanan Farahdel
@hanan.f.1994 7 سال پیش مطرح شد
0

ممنون
مشکل حل شد حالا یه مشکل دیگه دارم
اینکه وقتی تویه پیج لاگین یکی از اکشن هارو صدا میزنم و اطلاعات رو بهش میدم تو استیت ثبت میشه و وارد سایت میشم اطلاعات استیت رو میگیرم و بدرستی نشون میده ولی وقتی دوباره صفحه رو رفرش میکنم اطلاعات پاک میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام