作者:叫爸算了_459 | 来源:互联网 | 2023-01-31 17:22
我正在尝试为listview的每一行中包含的每个textinput设置一个状态值.
问题在于,React Native的ListView组件具有一系列优化技术,例如删除超出屏幕范围的行.这导致了一个问题,因为TextInputs正在锁定它们的value属性,编辑它们将不再反映更改并且状态值锁定或其他内容.我附上了一段视频来展示这种行为.
https://www.youtube.com/watch?v=fq7ITtzRvg4&feature=youtu.be
_renderRow(value){
let tempWidth = window.width / 2.13
if(value.data.length == 1){
tempWidth = window.width*0.970
}
var Images = value.data.map((b,i) => {
let source = { uri: BUCKETIMAGES+'/'+b.image_filename}
return (
{b.profile_picture &&
}
)
});
return(
Team {value.type}
{value.date}
{ Images }
{this.setState({["comment"+value.id]: commentInput})}}
/>
{this.setState({commentID: value.id}, this.addComment)}}>
)
}
render() {
return(
{Platform.OS === "ios" &&
}
{this.state.loading &&
}
{!this.state.loading &&
}
)
}
Funk Soul Ni..
5
我建议创建一个组件来渲染每一行,这样每个项目都可以保持自己的状态.我用ListView做了500多行类似的东西,效果很好.
1> Funk Soul Ni..:
我建议创建一个组件来渲染每一行,这样每个项目都可以保持自己的状态.我用ListView做了500多行类似的东西,效果很好.