【问题标题】:'Cannot read property 'map' of undefined' when using connect with mapStateToProps与 mapStateToProps 一起使用时,“无法读取未定义的属性 'map'”
【发布时间】:2019-04-22 11:53:58
【问题描述】:

我正在尝试在我的 react/redux 功能组件中显示我的状态(用户):

const Dumb = ({ users }) => {
  console.log('users', users)
  return (
    <div>
      <ul>
        {users.map(user => <li>user</li>)}
      </ul>
    </div>
  )
}

const data = state => ({
  users: state
})


connect(data, null)(Dumb)

Dumb 用于容器组件。 users.map 语句有问题,但我认为数据是通过 connect 语句注入的? reducer 有一个初始状态,其中有 1 个名称:

const users = (state = ['Jack'], action) => {
  switch (action.type) {
    case 'RECEIVED_DATA':
      return action.data

    default:
      return state
  }
}

CodeSandbox

【问题讨论】:

    标签: reactjs redux react-redux


    【解决方案1】:

    渲染时您没有使用连接的组件,因此组件中的道具不可用

    const ConnectedDumb = connect(
      data,
      null
    )(Dumb);
    
    class Container extends React.Component {
      render() {
        return (
          <div>
            <ConnectedDumb />
          </div>
        );
      }
    }
    

    Working demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-11
      • 2022-07-27
      • 2017-08-15
      • 1970-01-01
      • 2016-08-09
      • 2023-01-19
      • 2019-07-27
      相关资源
      最近更新 更多