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