首页 > 解决方案 > 与 mapStateToProps 一起使用连接时,“无法读取未定义的属性“地图”

问题描述

我正在尝试在我的 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 语句注入的?减速器有一个初始状态,其中有 1 个名称:

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

    default:
      return state
  }
}

代码沙盒

标签: reactjsreduxreact-redux

解决方案


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

const ConnectedDumb = connect(
  data,
  null
)(Dumb);

class Container extends React.Component {
  render() {
    return (
      <div>
        <ConnectedDumb />
      </div>
    );
  }
}

工作演示


推荐阅读