export default function App() {
const [arrays, setArrays] = useState([]);
const initArray = [
{ id: 2023, solveTF: false, rightTF: false },
{ id: 2025, solveTF: false, rightTF: false },
];
setArrays(initArray);
const idArrays = [2022,2023,2025,2027];
const idSearch = () => {
for (let i = 0; i < idArrays.length; i ) {
let idArray = idArrays[i]
let newArray = arrays.filter((item) => item.id == idArray).map();
console.log(newArray);
}};
return (
<View style={styles.container}>
<TouchableOpacity onPress={() => idSearch()}>
<Card>
<AssetExample />
</Card>
</TouchableOpacity>
</View>
);
}
我想檢查 idArrays 中的值是否存在于陣列中。如果沒有,我想向陣列添加一個新物件。我做錯了什么,我應該怎么做?
我與小吃.expo.dev 合作。[縮小反應錯誤 #301] 發生。
uj5u.com熱心網友回復:
初始化里面的狀態useState以避免不必要的重新渲染。
對于您想要的,最好使用someinside offilter來檢查不在其中的 id,arrays然后使用setArrays為尚未在其中的每個 id 添加一個新物件。
export default function App() {
// Initialize inside useState
const [arrays, setArrays] = useState([
{ id: 2023, solveTF: false, rightTF: false },
{ id: 2025, solveTF: false, rightTF: false },
]);
const idArrays = [2022, 2023, 2025, 2027];
const idSearch = () => {
const notExistInArrays = idArrays.filter(id => !arrays.some(item => item.id === id));
setArrays(prevArrays => [
...prevArrays,
...notExistInArrays.map(id => ({ id, solveTF: false, rightTF: false }))
]);
};
return (
<View style={styles.container}>
<TouchableOpacity onPress={() => idSearch()}>
<Card>
<AssetExample />
</Card>
</TouchableOpacity>
</View>
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/521113.html
上一篇:react-native中的onClick按鈕事件錯誤
下一篇:禁用觸摸屏的子視圖的可觸摸性
