我正在尝试获取下拉输入字段的默认值,因为我将其用于添加和更新。下面是我的代码
<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 }]
}
错误:
Cannot update during an existing state transition (such as within
render
). Render methods should be a pure function of props and state.
最佳答案
理想情况下,在 render
中设置 prop
值时,应仅使用 get
方法。
在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/