我正在尝试使用下拉列表输入字段的默认值进行添加和更新。下面是我的代码

<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/

10-12 06:49