1 回答
TA贡献1757条经验 获得超8个赞
为了&&执行这两个表达式,第一个必须返回一个真值,否则右侧将不会被执行:
const returnsFalse = () => false;
const returnsTrue = () => true;
const returnsNothing = () => {};
returnsFalse() && console.log("does not work with false");
returnsTrue() && console.log("works with true");
returnsNothing() && console.log("does not work with no return value");
该setOption
函数不返回任何内容
如果您希望在不依赖返回值的情况下执行两个表达式,则可以使用逗号运算符:
const returnsFalse = () => false;
const returnsTrue = () => true;
const returnsNothing = () => {};
(returnsFalse(), console.log("works with false"));
(returnsTrue(), console.log("works with true"));
(returnsNothing(), console.log("works with no return value"));
所以,你的代码应该是这样的:
<button {...getToggleButtonProps()}>
{selectedItem === null
? setOption(dropdownItems[0].value), setPage(1)
: setOption(selectedItem.value), setPage(1) }
{`${option}`}
<ArrowIcon isOpen={isOpen} />
</button>
另一种,如果你想呼叫setPage后setOption完成后,将利用回调参数,并通过将调用一个函数setPage(1)来setOption:
<button {...getToggleButtonProps()}>
{selectedItem === null
? setOption(dropdownItems[0].value, () => setPage(1))
: setOption(selectedItem.value, () => setPage(1)) }
{`${option}`}
<ArrowIcon isOpen={isOpen} />
</button>
添加回答
举报