如何 select React Native 中每个项目的单个子项目
How to select single sub item from every item in React Native
我正在尝试 select 每个项目中只有一个子项目,例如这张照片:
我想做什么:
使用 index:color、value:black 推送数组。
当我选择红色时,更新数组:index:color、value:red。
并且 CHECKBOX 应该只用 selected 子项(红色或黑色)检查。
这是我的 onPress 函数:
const [optionsSelected,setOptionsSelected] = useState([]);
const checkSelected = (optionid,valueid) =>{
if(optionsSelected && optionsSelected.length>0){
if(optionsSelected[optionid] && optionsSelected[optionid]!=undefined){
optionsSelected[optionid]=valueid;
}
}else{
setOptionsSelected(oldArray => [...oldArray, {[optionid]:valueid}]);
}
}
为什么不使用普通对象而不是数组?
setOptionsSelected(prev => ({
...prev,
[optionid]: valueid,
});
好的,我找到了解决方案:
首先,这是更新后的代码:
const checkSelected = (optionid,valueid) =>{
setOptionsSelected(oldArray => ({...oldArray,[optionid]:valueid}));
}
那么,这是我的支票:
if(optionsSelected[item.option_id] && optionsSelected[item.option_id]==item.value_id){
//checked=true;
}else{
//checked=false;
}
谢谢大家
我正在尝试 select 每个项目中只有一个子项目,例如这张照片:
我想做什么:
使用 index:color、value:black 推送数组。
当我选择红色时,更新数组:index:color、value:red。
并且 CHECKBOX 应该只用 selected 子项(红色或黑色)检查。
这是我的 onPress 函数:
const [optionsSelected,setOptionsSelected] = useState([]);
const checkSelected = (optionid,valueid) =>{
if(optionsSelected && optionsSelected.length>0){
if(optionsSelected[optionid] && optionsSelected[optionid]!=undefined){
optionsSelected[optionid]=valueid;
}
}else{
setOptionsSelected(oldArray => [...oldArray, {[optionid]:valueid}]);
}
}
为什么不使用普通对象而不是数组?
setOptionsSelected(prev => ({
...prev,
[optionid]: valueid,
});
好的,我找到了解决方案:
首先,这是更新后的代码:
const checkSelected = (optionid,valueid) =>{
setOptionsSelected(oldArray => ({...oldArray,[optionid]:valueid}));
}
那么,这是我的支票:
if(optionsSelected[item.option_id] && optionsSelected[item.option_id]==item.value_id){
//checked=true;
}else{
//checked=false;
}
谢谢大家