【发布时间】:2020-01-14 01:14:00
【问题描述】:
我正在尝试制作一个功能
如果 X 为真 然后调用 setFalse 函数 ELSE 不要调用 setFalseFunction
this.state = {
X: true,
Y: true,
Z: true,
};
}
setFalse() {
this.setState({
X: true ? this.setState.setFalse() : !this.setState.setFalse()),
Y: true ? this.setState.setFalse() : !this.setState.setFalse()),
Z: true ? this.setState.setFalse() : !this.setState.setFalse())
});
}
但这似乎不起作用,我也尝试过 X = true?而不是 X: true?,仍然没有运气。
【问题讨论】:
-
为什么需要三元运算符?
if (true) this.setState.setFalse();. -
!this.setState.setFalse()不是“不要调用setFalse”,而是“调用setFalse 然后否定结果”。此外,您永远不会引用X的当前值,如果您的新状态依赖于旧状态,您应该使用setState的回调形式。我强烈建议您阅读结构化教程(参见例如reactjs.org/docs/state-and-lifecycle.html)。 -
这不是你使用
setState的方式。但一般你可以使用&&-condition && doStuff()只有在条件为真时才会调用doStuff。 -
我正在检查 3 种不同的条件,虽然使用 and if 会使它更长。
-
如果您能向我们展示真实代码会很有帮助
标签: javascript reactjs ternary-operator