با سلام
بنده تازه کار با ری اکت و ری داکس رو شروع کردم و اولین پروژمو دارم سعی میکنم اجرا کنم،لطفا کمکم کنید
اکشن رو به اینصورت ایجاد کردم
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 پروپ رو خالی برمیگردونه
تو همون خط اول یه اشتباه syntax ی دارین :
export const SetOnlineUser=(_apiKey)=>({
type:SET_ONLINRUSER,
apiKey:apiKey
});
به این شکل بنویسید :
export const SetOnlineUser=(apiKey)=>({
type:SET_ONLINRUSER,
apiKey
});
ممنون
مشکل حل شد حالا یه مشکل دیگه دارم
اینکه وقتی تویه پیج لاگین یکی از اکشن هارو صدا میزنم و اطلاعات رو بهش میدم تو استیت ثبت میشه و وارد سایت میشم اطلاعات استیت رو میگیرم و بدرستی نشون میده ولی وقتی دوباره صفحه رو رفرش میکنم اطلاعات پاک میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟