راکت

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

2 پاسخ

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

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

    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 پروپ رو خالی برمیگردونه

ثبت پرسش جدید

پاسخ‌ها

2
Amin Khademian
Amin Khademian
@khademianamin

تخصص: Front-End Developer

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

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

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

export const SetOnlineUser=(apiKey)=>({
        type:SET_ONLINRUSER,
        apiKey
    });
Hanan Farahdel
Hanan Farahdel
@hanan.f.1994

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

شاید پاسخ شما همین‌جا باشد

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

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