javascript - reactjs中设置状态时如何使用三元运算
问题描述
只有当输入的值与文本框中的前一个值不同时,我才需要进行 API 调用。我正在尝试在以下引发编译错误的方法中使用三元运算符。有人可以帮我吗。
我已经将状态中的序列号设置为“序列号”:“”
updatePartSerialNumberDummy(){
this.setState(
{
serialNumber: this.input.value
}, () => {this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId, this.state.serialNumber);}
)}
一旦完成 api 调用,我将设置在像 this.props.serialNumber 这样的道具中输入的序列号,这将给出 api 调用所使用的序列号。现在下次我只想在用户输入不同的值时调用 API。
解决方案
在这种情况下,您实际上不需要三元运算符:
updatePartSerialNumberDummy(){
if(this.input.value === this.props.serialNumber) return null
this.setState(
{
serialNumber: this.input.value
}, () => {this.props.getPartSerialNumberDetails(this.props.serviceProviderId,this.props.serviceProviderLocationId, this.state.serialNumber);}
)}
}
但是你可以像这样实现它:
updateWithternaryOperator(){
this.setState({
value : input !== 2 ? null : input
},() => input !== 2 ? null : doSomethingCaseValueIs2)
}
推荐阅读
- python - Django Rest 框架中的 OTP 验证
- php - 从 laravel 中的选项选择中获取名称和值
- javascript - 使用nodeJS创建依赖下拉菜单过滤器
- reactjs - 酶的导入组件在浅层上抛出一个错误的意外标记(它在 Typescipt 上)
- r - 从 textOutput() 函数中提取文本
- reactjs - 无法在 reactjs 中的电子邮件正文中显示值
- laravel - 保存有关模型创建的其他数据
- python-3.x - 每天使用 APScheduler 安排功能,但时间不同(日出、日落)
- date - 如何在 Vuejs 中以 yyyy mm dd 格式解析日期字符串:hh mm ss 到 yyyy mm dd,momentjs 表示已弃用
- javascript - 使用默认值和三元运算符查找的可选链接方法