Javascript 两次调用Find函数将undefined作为输出

Javascript 两次调用Find函数将undefined作为输出,javascript,reactjs,react-native,Javascript,Reactjs,React Native,下面的代码第一次运行正常,它会找到正确的项并更改其选中值,但是如果我再次使用相同的id调用相同的函数,它将返回undefined。知道为什么吗 此代码在React本机应用程序中使用,其中复选框使用此方法更新 复选框: <CheckBox value={item.checked} key={item.id} onValueChange={setSelection} onChange={()=> { handleChange(item.id); }} style={styles.chec

下面的代码第一次运行正常,它会找到正确的项并更改其选中值,但是如果我再次使用相同的id调用相同的函数,它将返回undefined。知道为什么吗

此代码在React本机应用程序中使用,其中复选框使用此方法更新

复选框:

<CheckBox value={item.checked} key={item.id} onValueChange={setSelection} onChange={()=> {
handleChange(item.id);
}}
style={styles.checkbox}
tintColors={{ true: "#ffc324", false: "#ffc324" }}
/>



const handleChange = (id) => {
const ids = id;
let changedCheckbox = categories.find((category) => {
    return category.subcategory.find((item) => {
        if (item.id === ids) {
            return (item.checked = !item.checked);
        }
    });
});
console.log(changedCheckbox);
};
切换选中,然后返回布尔值不
选中

更改此语句


返回(item.checked=!item.checked)捷虹:无变化:(@BinuMathew好的。我会再试一次。@BinuMathew什么意思
item.checked=!item.checked
?你想检查一下吗?@BinuMathew不要更改
find
回调中的值。我会编辑我的答案。@BinuMathew请阅读我当前的答案。它仍然显示未定义。你能检查一下这把小提琴吗,它似乎对我有用.
[
{
    "id": 1,
    "name": "MOTs",
    "filename": "1610270182.png",
    "bg_filename": null,
    "content": "You can try this set a state like this and check if your component mounted or not. This way you are sure that if your component is unmounted you are not trying to fetch something.",
    "featured": 1,
    "created_at": "2021-01-10T09:16:22.000000Z",
    "updated_at": "2021-01-10T09:40:37.000000Z",
    "subcategory": [
        {
            "id": 1,
            "name": "MOT1",
            "category_id": 1,
            "image_name": null,
            "created_at": null,
            "updated_at": null,
            "checked": false
        },
        {
            "id": 2,
            "name": "MOT2",
            "category_id": 1,
            "image_name": null,
            "created_at": null,
            "updated_at": null,
            "checked": false
        },
        {
            "id": 3,
            "name": "MOT3",
            "category_id": 1,
            "image_name": "1611678308.png",
            "created_at": "2021-01-26T16:25:11.000000Z",
            "updated_at": "2021-01-26T16:31:24.000000Z",
            "checked": false
        }
    ]
}
]
const handleChange = (id) => {
  const category = categories.find(category => {
    const item = category.subcategory.find(item => item.id === id);
    if (item) item.checked = ! item.checked;
    return !!item;
  });
  console.log(category)
};