React Native显示嵌套数组项

时间:2019-09-15 16:39:14

标签: reactjs react-native axios

以下代码用于单个帖子,axios获取当前帖子ID,并将结果存储在帖子数组中。请注意,由于只获取一个帖子,因此仅存储一个帖子。 ID和日期显示正确,但是如果我尝试显示嵌套项目(如渲染的内容),则无法正常工作。

这是API json结果的样子: enter image description here

    constructor(props) {
    super(props);

    this.state = {
      post: []
    };
  }

getPost() {
    axios
      .get('single_post_api')
      .then(response => {
        this.setState({
          post: response.data
        });
      });
}

componentDidMount() {    
    this.getPost();
  }

render() {
const data = this.state.post;

  return ( 
  <View>    
          <Text>{data.date}</Text>
          <Text>{data.slug}</Text>

///Neither of these work///
          <Text>{data.content.rendered}</Text>
          <Text>{data.content[0]}</Text>
////////////////////////////

  </View>
  );
}

1 个答案:

答案 0 :(得分:1)

尝试一下。

render() {
  // If we run into a null, just render it as if we had an empty array.
  const posts = (this.state ?? this.state.posts) ? this.state.posts : [];

  return ( 
    <View>
      (posts.map((post, index) => (
        <View key={index}>
          <Text>{post.date}</Text>
          <Text>{post.slug}</Text>
          <Text>{post.content ? post.content.rendered : ""}</Text>
        </View>
      ));
  </View>
  );
}