با سلام
بنده تازه کار با ری اکت و ری داکس رو شروع کردم و اولین پروژمو دارم سعی میکنم اجرا کنم،لطفا کمکم کنید
اکشن رو به اینصورت ایجاد کردم
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 پروپ رو خالی برمیگردونه
ممنون
مشکل حل شد حالا یه مشکل دیگه دارم
اینکه وقتی تویه پیج لاگین یکی از اکشن هارو صدا میزنم و اطلاعات رو بهش میدم تو استیت ثبت میشه و وارد سایت میشم اطلاعات استیت رو میگیرم و بدرستی نشون میده ولی وقتی دوباره صفحه رو رفرش میکنم اطلاعات پاک میشه
شاید پاسخ شما همینجا باشد