React 钩子“必须在每个组件渲染中以完全相同的顺序调用”。eslint 插件警告在循环中使用钩子可能是因为循环每次执行的方式都不同,具体取决于退出条件。
但是以这个例子为例,循环执行每次都会导致相同顺序的钩子调用:
const BUBBLE_COUNT = 4;
const shared = {
translateXArr: [],
translateYArr: [],
}
for (let i = 0; i < BUBBLE_COUNT; i++) {
shared.translateXArr.push(useSharedValue(0));
shared.translateYArr.push(useSharedValue(0));
}
eslint 插件仍然警告使用“useSharedValue”(来自 react-native-reanimated)。
问题:在上述情况下,沉默并忽略警告是否安全?我的代码似乎运行良好,但我不知道周围是否潜伏着一些隐患。