反应:this.props.posts.map不是一个函数

ko_ma

我使用React.js + Redux制作待办事项应用程序。

但是,我发生了错误“ TypeError:this.props.posts.map不是函数”

我的App.js:

class App extends Component {
render() {
  return (
    <div className="App">
      <Input />
      <List posts={this.props.allPosts} />
    </div>
  );
 }
}

const mapStateToProps = state => {
  return {
    allPosts: state
  };
};

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

我的列表组件:

class List extends Component {
  render() {
   console.log(this.props.posts);
   return (
    <div>
      <ul>
        {this.props.posts.map((post, index) => (
         <Item {...post} key={index} />
        ))}
      </ul>
    </div>
    );
  }
}

我的减速机:

const initialState = [];

export default function Post(state = initialState, action) {
  switch (action.type) {
   case ADD_POST:
     return [
     ...state,
     {
      id: action.id,
      title: action.title,
      content: action.content
     }
   ];

为什么会发生错误?我设置了console.log,但是它是未定义的...

- - 编辑

codesandbox链接:https ://codesandbox.io/s/x91zl9v78p

托勒

在化简器default中的switch语句中没有分支,这将使其undefined默认情况下返回。

您可以添加default仅返回状态分支。

const initialState = [];

export default function Post(state = initialState, action) {
  switch (action.type) {
    case ADD_POST:
      return [
      ...state,
      {
        id: action.id,
        title: action.title,
        content: action.content
      }
    ];
    default:
      return state;
  }
}

您还必须确保输入state.postas allPost,而不是整个Redux状态。也不需要connectItem组件上使用因为无论如何您都会提供titlecontent作为道具。

const mapStateToProps = state => {
  return {
    allPosts: state.post
  };
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeError:this.props.data.map不是一个函数,但是data是一个列表

ReactJS:this.props.data.map不是一个函数

反应-TypeError:this.props.courses.map不是函数

反应:.map不是一个函数

React和this.props.results.map不是一个函数

TypeError:this.props.propName.map不是一个函数反应js

undefined不是this.props.navigation对象-反应本机

React给我TypeError:尝试通过帖子数组映射时props.posts.map不是函数

反应TypeError:lists.map不是一个函数

反应-TypeError:this.props.AccountId不是函数

反应-尝试在reduce()函数中引用this.props

反应redux props undefined

反应TypeError:this.state.List.map不是一个函数

未捕获的TypeError:_this.props.data.map不是一个函数,映射错误以渲染组件

反应Redux TypeError this.props.setEmailText不是函数

React:TypeError:this.props.users.map不是一个函数

反应-TypeError:jokes.map不是一个函数

React.js:posts.map不是一个函数

反应typerror,不是一个函数

undefined 不是一个对象(评估'this.props.navigation')反应导航

反应原生导航有问题| undefined 不是一个对象(评估'_this.props.navigation')

反应: props.<function name> 不是函数

'this.props.tasks.map 不是函数'错误-反应错误

data.map 不是一个函数反应

反应 this.state.addroom.map 不是一个函数

在反应 ' const {item}= props; ' 这里的 props 是一个 obj,那么 item 是什么意思呢?道具的 obj,或道具中的每个 obj 的单个临时 obj,例如 map

在反应中使用 map 方法的问题(posts.map 不是函数)

我收到一个错误 props.onSubmitForm 不是一个函数,同时试图在反应中将数据从子组件传递到父组件

类型错误:props.numberArray.map 不是函数反应