【发布时间】:2020-05-15 01:47:19
【问题描述】:
我正在学习 React Native,我正在编写一个简单的应用程序来记录每天的睡眠时间。
当按下添加新寄存器的按钮时,我会这样做
onPress={() => setUpdateAction(true)}
这会改变 updateAction 的值:
const [updateAction, setUpdateAction] = useState(false);
当 updateAction 的值改变时,这将被执行:
useEffect(() => {
... code that add's the register to an array
setviewInfoAction(true);
setUpdateAction(false);
}, [updateAction]);
在里面我调用setviewInfoAction(true);,因为我想用插入的值更改显示的值。
const [viewInfoAction, setviewInfoAction] = useState(false);
useEffect(() => {
console.log("CALLED");
var seted = false;
for (var i = 0; i < registSleep.length; i++) {
if (
registSleep[i].day === selectedDay &&
registSleep[i].month === selectedMonth &&
registSleep[i].year === selectedYear
) {
setSelectedDayHours(registSleep[i].hours);
seted = true;
}
}
if (!seted) {
setSelectedDayHours(0);
}
setviewInfoAction(false);
}, [viewInfoAction]);
这样做我期望执行第二个 UseEffect 但它不是......
【问题讨论】:
-
只需将由第一个 useEffect 更改的值添加到第二个 useEffect 依赖项中。在你的情况下,我猜应该是
updateAction
标签: javascript reactjs react-native