gpt4 book ai didi

react-native - 可拖动的平面列表不渲染任何东西

转载 作者:行者123 更新时间:2023-12-04 04:24:41 25 4
gpt4 key购买 nike

我正在尝试为draggable-flatlist 编写一个简单的代码。同样的代码对于 FlatList 运行得非常好。在下面的代码中,如果我用 DraggableFlatList 替换 FlatList,虽然从渲染组件“TaskListTile”显示日志,但我没有在屏幕上看到任何内容

  this.state = {
data: [{key: '0',id:'0', name: 'Tasklist1', totalTasks: '10', completedTasks: '9'},
{key: '1',id:'1', name: 'Tasklist2', totalTasks: '12', completedTasks: '9'},
{key: '2',id:'2', name: 'Tasklist3', totalTasks: '50', completedTasks: '1'}
]

}
}


render(){
return (

<FlatList
data={this.state.data}
renderItem= {({item}) =><TaskListTile displayData={item}/>}
keyExtractor={item => item.id}
scrollPercent={5}
onMoveEnd={({ data }) => this.setState({ data })}
/>
)
};

任务列表Tile.js
    const {id, name, completedTasks, totalTasks} = this.props.displayData;

return (
<View key={id} style={{backgroundColor:'#d6eef8', borderColor:'#00CCFF', borderWidth:1,margin:10,padding:10, borderRadius:5}}>
<Text style={{color:'#00CCFF', fontSize:20}}>{name}</Text>
<View style={{flexDirection:'row'}}>
<Text>Tasks completed: {completedTasks}/{totalTasks}</Text>
<View style={{flex:1, alignItems:'flex-end'}}>

<ProgressBar progress={parseInt( this.props.displayData.completedTasks)/parseInt( this.props.displayData.totalTasks)} style={{height:8, width:90}}/>
</View>
</View>
</View>
);
}

Screenshot of app using FlatList

最佳答案

将 extraData={this.state} 传递给组件

   <FlatList
data={this.state.data}
extraData={this.state} // add this line
renderItem= {({item}) =><TaskListTile displayData={item}/>}
keyExtractor={item => item.id}
scrollPercent={5}
onMoveEnd={({ data }) => this.setState({ data })}
/>

关于react-native - 可拖动的平面列表不渲染任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com