reactjs - mapStateToProps 根本没有被调用

标签 reactjs redux react-redux

这个问题在这里已经有了答案:





React - User-Defined JSX Components Not rendering

(1 个回答)


4年前关闭。




我正在尝试创建一个使用 mapStateToProps 订阅商店的容器。我能够以这种方式使用 reducer 改变状态

export default function firstReducer(state={}, action) {
    switch(action.type){
        case 'ADD_USERNAME':
            return Object.assign({}, state, {
                username: action.payload
            });
        default:
            return state;
    }
}

但是, mapStateToProps 甚至一次都没有被调用。我哪里错了
export default class myComponent extends React.Component{
   render(){
       return(
            <h1>this.props.userName</h1>
       )
   }
}

function mapStateToProps(state){
    console.log("Hey");
    return{
        userName: state.username
    };
}

export const myContainer = connect(mapStateToProps, null)(myComponent);

最佳答案

你需要注意的两件事

首先让您的组件名称不是大写字母,然后从组件中删除导出默认值,否则当您将其作为默认值导入时,您将不会使用与商店连接的组件

class MyComponent extends React.Component{
   render(){
       return(
            <h1>this.props.userName</h1>
       )
   }
}

function mapStateToProps(state){
    console.log("Hey");
    return{
        userName: state.username
    };
}

export default connect(mapStateToProps, null)(MyComponent);

关于reactjs - mapStateToProps 根本没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474031/

相关文章:

javascript - 加载时的路由不适用于我的 React native 应用程序

javascript - 如何在构建时以不同的方式构建开发环境和生产环境?等)数据库配置

reactjs - 尝试使用 webpack 和 babel 加载 css 时出现意外标记

reactjs - Jest mock 传奇延迟

javascript - "next"在react-redux中间件中如何工作?

mysql - 减少跨数据库、后端和前端的模型重复

javascript - 如何使用 jest 使用 Promise.all 设置多次提取测试

javascript - "TypeError: Cannot destructure property ' 产品 ' of ' 产品详细信息 ' as it is undefined"

reactjs - 如何使用钩子(Hook)通过现有的 redux 操作获取数据?

reactjs - 如何使用不变性助手来更新数组中的嵌套对象?