首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一个FlatList的数据中可以有多个参数吗?

一个FlatList的数据中可以有多个参数吗?
EN

Stack Overflow用户
提问于 2018-08-19 05:16:56
回答 1查看 31关注 0票数 0

例如,如下所示:

代码语言:javascript
复制
<FlatList data={ this.state.foods, this.state.trees }
          renderItem={({item}) => <View><Text>{item.food}</Text><Text>{item.tree}</Text></View>
/>

只要我有相同的密钥(id),是否可以这样工作?

this.state.foods

代码语言:javascript
复制
[{
  "id": "1",
  "food":"chicken",
  "cal":"1000",
}]

this.state.trees

代码语言:javascript
复制
[{
  "id": "1",
  "tree":"pine",
  "size":"10",
}]

编辑:

代码语言:javascript
复制
    render(){
      const {trees, foods} = this.state
const combinedArray = trees.map(tree => Object.assign(tree, foods.find(food => food.id == tree.id)));
      return(




    componentDidUpdate(prevProps, prevState) {
      if (!prevState.foods) {

        fetch('https://www.example.com/React/food.php')
         .then((response) => response.json())
         .then((responseJson) => {
           this.setState({
             isLoading: false,
             foods:  responseJson.map(item => ({ ...item, progress: new Animated.Value(0), unprogress: new Animated.Value(1) }))

             }, function() {

           });
         })
         .catch((error) => {
           //console.error(error);
         });
         fetch('https://www.example.com/React/tree.php')
            .then((response) => response.json())
            .then((responseJson) => {
              this.setState({
                isLoading: false,
                trees:  responseJson
                }, function() {

              });
            })
            .catch((error) => {
              //console.error(error);
            });
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-19 05:30:52

您需要为Flatlist data提供单个array

您可以基于id对对象进行分组并使用它们

代码语言:javascript
复制
const {trees, foods} = this.state
const combinedArray = trees.map(tree => Object.assign(tree, foods.find(food => food.id == tree.id)));

然后在Flatlist中使用combinedArray

如果您的state最初是undefinednull,则需要添加

代码语言:javascript
复制
constructor(props) {
    super(props)
    this.state = {
      trees: [],
      foods: []
    }
   }

添加到您的类组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51912612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档