javascript - 如何在reactjs中获取下拉输入的默认值

标签 javascript reactjs ecmascript-6 jsx

我正在尝试获取下拉输入字段的默认值,因为我将其用于添加和更新。下面是我的代码

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

相关文章:

javascript - 如何在 Firebase 的 '' on'' 方法上调用 promise ?

javascript - 浏览器在代码结果中给出了不同的 jquery 错误

reactjs - 如何使用 create-react-app 在我的 React Web 应用程序上显示构建日期时间?

javascript - 使用 Express 提供页面并允许包含文件

javascript - 防止默认粘贴

javascript - React 中组件之间传递数据

typescript - 如何修复 "property destructuring pattern expected"错误?

javascript - 更新数组但保留 map 中的现有数组

javascript - 在tcomb-form库中,t.Date接受什么日期格式?

javascript - Facebook 登录按钮导致“ Uncaught Error