React native 在react native中查找并替换数组中的键
我试图在平面列表中实现复选框和未选中框 我检查了一个关键词。基于此关键字,我想显示复选框(选中或未选中) 我试图在选择和取消选择时更新选中键 但是会有错误 谁能告诉我这里怎么了 这是我的密码:React native 在react native中查找并替换数组中的键,react-native,listview,checkbox,React Native,Listview,Checkbox,我试图在平面列表中实现复选框和未选中框 我检查了一个关键词。基于此关键字,我想显示复选框(选中或未选中) 我试图在选择和取消选择时更新选中键 但是会有错误 谁能告诉我这里怎么了 这是我的密码: updateItem(item) { this.setState({ array : ! this.array.findIndex(item => item.title === item.title).checked }) this.setState({ arr
updateItem(item) {
this.setState({
array : ! this.array.findIndex(item => item.title === item.title).checked
})
this.setState({ array: [...this.array] });
}
我的阵列是:
(this.array = [{title: "Option 1",checked:"false"},
{ title: "Option 2" ,checked:"false"},
{ title: "Option 3",checked:"false"},
{ title: "Option 4",checked:"false" },
{ title: "Option 5",checked:"false"}
])
谢谢 您现在正在将数组设置为true或false 还要确保选中的值是
布尔值
,而不是字符串
this.array=[{title:“选项1”,选中:false},
{标题:“选项2”,选中:false},
{标题:“选项3”,选中:false},
{标题:“选项4”,选中:false},
{标题:“选项5”,选中:false}
]
此方法将映射到您的数组。如果标题匹配,它将切换选中的值,否则它将再次返回相同的对象
updateItem=(项目)=>{
这是我的国家({
数组:this.state.array.map(curr=>{
如果(item.title==当前标题){
返回{…curr,选中:!curr.checked}
}否则{
返回货币
}
})
})
}
您现在正在将数组设置为true或false
还要确保选中的值是布尔值
,而不是字符串
this.array=[{title:“选项1”,选中:false},
{标题:“选项2”,选中:false},
{标题:“选项3”,选中:false},
{标题:“选项4”,选中:false},
{标题:“选项5”,选中:false}
]
此方法将映射到您的数组。如果标题匹配,它将切换选中的值,否则它将再次返回相同的对象
updateItem=(项目)=>{
这是我的国家({
数组:this.state.array.map(curr=>{
如果(item.title==当前标题){
返回{…curr,选中:!curr.checked}
}否则{
返回货币
}
})
})
}
使用以下代码
this.state.array = [{title: "Option 1",checked:false},
{ title: "Option 2" ,checked:false},
{ title: "Option 3",checked:false},
{ title: "Option 4",checked:false },
{ title: "Option 5",checked:false}
]
在构造函数中将this.array更改为this.state.array。如果你
如果在任何其他函数中执行,则必须使用setState
在更新的同时,
updateItem = (item) => {
this.setState({
array : this.state.array.map(item => {
if(item.title === item.title) {
return {...item, checked: !item.checked};
} else {
return { ...item, checked: false }; // if you want only one checked
// return item; if multiple checks if fine.
}
})
})
}
使用以下代码
this.state.array = [{title: "Option 1",checked:false},
{ title: "Option 2" ,checked:false},
{ title: "Option 3",checked:false},
{ title: "Option 4",checked:false },
{ title: "Option 5",checked:false}
]
在构造函数中将this.array更改为this.state.array。如果你
如果在任何其他函数中执行,则必须使用setState
在更新的同时,
updateItem = (item) => {
this.setState({
array : this.state.array.map(item => {
if(item.title === item.title) {
return {...item, checked: !item.checked};
} else {
return { ...item, checked: false }; // if you want only one checked
// return item; if multiple checks if fine.
}
})
})
}
有什么问题errors@GokulKulkarni它没有更新值。问题是什么errors@GokulKulkarni它没有更新值,我认为这两个相同的项目变量都会产生问题。我已将dit替换为:updateItem=(item)=>{this.setState({array:this.state.array.map(itemObj=>{if(item.title===itemObj.title){return{…item,checked:!item.checked}}else{return item}}}}是否正确?抱歉。没错:)现在应该没问题了Tobias,你知道Legend吗?我认为这两个相同的项目变量都会产生问题。我已将dit替换为:updateItem=(item)=>{this.setState({array:this.state.array.map(itemObj=>{if(item.title===itemObj.title){return{…item,checked:!item.checked}}else{return item}}}}是否正确?抱歉。是的,没错:)现在应该没事了托比亚斯,你这个传说我还有一个问题你能检查一下吗?我还有一个问题你能检查一下吗-