Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux MapStateTrops未正确连接_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs Redux MapStateTrops未正确连接

Reactjs Redux MapStateTrops未正确连接,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我想在我的注册页面中使用Redux,因此我创建了一个用户缩减器: const user = (state = initialState, action) => { switch (action.type) { case 'TYPE_FIRSTNAME': console.log('typed first name ' + action.text); return { ...state, firstName: actio

我想在我的注册页面中使用Redux,因此我创建了一个用户缩减器:

const user = (state = initialState, action) => {
    switch (action.type) {
        case 'TYPE_FIRSTNAME':
            console.log('typed first name ' + action.text);
            return { ...state, firstName: action.text };
        case 'TYPE_LASTNAME':
            return { ...state, lastName: action.text };
        case 'TYPE_EMAIL':
            return { ...state, email: action.text };
        case 'TYPE_PASSWORD':
            return { ...state, password: action.text };
        default:
            return state;
    }
}
它是这样创建的:

    const AppReducer = combineReducers({
        nav,
        user
    });
export default AppReducer;
导航减速器用于导航(与react导航一起使用,工作正常)。之后,我创建了一个容器:

const mapStateToProps = state => {
    return {
        firstName: state.firstName,
        lastName: state.lastName,
    }
};
const mapDispatchToProps = (dispatch, ownProps) => ({
    typeFirstName: (text) => {console.log('typed firstname');
    dispatch({type: 'TYPE_FIRSTNAME', text})},
    typeLastName: (text) => dispatch({type: 'TYPE_LASTNAME', text}),
    registerUser: () => {
        //register("mamad");
        console.log('called register user : ');        
        dispatch({type: 'MAINSCREEN'})
    }
});

export default connect(mapStateToProps, 
    mapDispatchToProps)(RegisterScene)

但是它从来没有被调用过,为什么?

当您组合减缩器时,状态会被放入指定的状态分支

在您的情况下,您需要
state.user

因此,MapStateTops函数应该如下所示:

const mapStateToProps = state => {
    return {
        firstName: state.user.firstName,
        lastName: state.user.lastName,
    }
};

当您组合减速器时,状态被放入指定的状态分支

在您的情况下,您需要
state.user

因此,MapStateTops函数应该如下所示:

const mapStateToProps = state => {
    return {
        firstName: state.user.firstName,
        lastName: state.user.lastName,
    }
};

我发现的唯一问题是
MapStateTops
。我想应该是这样

const mapStateToProps = state => {
    return {
        firstName: state.user.firstName,
        lastName: state.user.lastName,
    }
};

如果你把错误日志放在这里,那会很有帮助

我发现的唯一问题是
MapStateTops
。我想应该是这样

const mapStateToProps = state => {
    return {
        firstName: state.user.firstName,
        lastName: state.user.lastName,
    }
};

如果你把错误日志放在这里,那会很有帮助

您的意思是,如果在
返回上放置调试器{
mapStateToProps
中的一行,它从未被命中?从未被调用的是什么?如果您正在调用某个动作创建者,如
typeFirstName
,请向我们显示您可以将代码添加到codesandbox中的代码。io@TomFenech不,但当我触发一个动作或在寄存器中打印一个道具时,它没有任何效果,只是n所有发生的事情她都是我在相关文件夹中的所有代码:容器、还原器和场景你是说如果你在
返回中放置调试器{
mapStateToProps
中的一行,它从未被命中?从未被调用的是什么?如果您正在调用某个动作创建者,如
typeFirstName
,请向我们显示您可以将代码添加到codesandbox中的代码。io@TomFenech不,但当我触发一个动作或在寄存器中打印一个道具时,它没有任何效果,只是n所有发生的事情都是我在相关文件夹中的所有代码:容器、还原器和场景