首页 > 解决方案 > 无法读取 null 的属性“帖子”

问题描述

我试图在渲染部分获取 this.state.posts,但它抛出了一个错误Cannot read property 'posts' of null知道我做错了什么吗?

class Blog extends React.PureComponent {
  componentDidMount() {
    axios
      .get(
        "http://public-api.wordpress.com/rest/v1/sites/emma.wordpress.com/posts"
      )
      .then((res) => {
        this.setState({ posts: res.data.posts });
        console.log("setState: ", this.state.posts);
      })
      .catch((error) => console.log(error));
  }

  render() {
    return (
      <Wrapper>
        <ul>
          {Object.values(this.state.posts).map((post) => {
            return <li>{post.name}</li>;
          })}
          ;
        </ul>
      </Wrapper>
    );
  }
}

export default Blog;

标签: javascriptreactjsjsx

解决方案


您尚未state在代码中定义,请定义为

class Blog extends React.PureComponent {

  state = {posts: []};

  componentDidMount() {...}

  render() {
    return (...);
  }
}

export default Blog;

推荐阅读