我正在尝试使用下拉列表输入字段的默认值进行添加和更新。下面是我的代码
<BrInput
type="select"
name="altPayableInd"
id="altPayableInd"
options={altPayableIndOpt}
default={payableResp.payable[index] && payableResp.payable[index].altPayableInd.value && this.setDefaultValue(payableResp.payable[index] && payableResp.payable[index].altPayableInd.value, altPayableIndOpt)}
/>
setDefaultValue = (value, options) => {
let matchedLabel = options.find(el => el.value === value);
if (value !== "O") {
this.setState({ viewReason: false })
}
return [{ value, label: matchedLabel.label }]
}
错误:
在现有状态转换期间(例如在
render
中)无法更新。渲染方法应该纯粹是props和state的函数。 最佳答案
理想情况下,在get
中设置prop
值时,应仅使用render
方法。
在setDefaultValue
中,您使用的setState
无效,这就是您的错误所说的。您必须将其移至其他逻辑。
要按原样使用,请按以下步骤使用:(在此处注释了代码,只是为了显示错误部分,您可以删除它)
setDefaultValue = (value, options) => {
let matchedLabel = options.find(el => el.value === value);
// if (value !== "O") {
// this.setState({ viewReason: false }) // you can't use setState in render
// }
return [{ value, label: matchedLabel.label }]
}
关于javascript - 如何在reactjs中获取下拉菜单输入的默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58073106/