Javascript 如何在reactjs中获取下拉输入的默认值
我正在尝试获取下拉输入字段的默认值,因为我将其用于添加和更新。下面是我的代码Javascript 如何在reactjs中获取下拉输入的默认值,javascript,reactjs,ecmascript-6,jsx,Javascript,Reactjs,Ecmascript 6,Jsx,我正在尝试获取下拉输入字段的默认值,因为我将其用于添加和更新。下面是我的代码 setDefaultValue=(值,选项)=>{ 让matchedLabel=options.find(el=>el.value==value); 如果(值!=“O”){ this.setState({viewReason:false}) } 返回[{value,label:matchedLabel.label}] } 错误: 无法在现有状态转换期间更新(例如在渲染中)。渲染方法应该是道具和状态的纯函数 理想情
setDefaultValue=(值,选项)=>{
让matchedLabel=options.find(el=>el.value==value);
如果(值!=“O”){
this.setState({viewReason:false})
}
返回[{value,label:matchedLabel.label}]
}
错误:
无法在现有状态转换期间更新(例如在渲染中)。渲染方法应该是道具和状态的纯函数
理想情况下,在render
中设置prop
值时,应该只使用get
方法
在setDefaultValue
中,您使用的是setState
,它将变得无效,这就是您的错误所在您必须将其移动到另一个逻辑。
若要使其按原样工作,请按如下方式使用:(此处对代码进行注释,只是为了显示错误部分,您可以删除此代码)
理想情况下,在render
中设置prop
值时,应该只使用get
方法
在setDefaultValue
中,您使用的是setState
,它将变得无效,这就是您的错误所在您必须将其移动到另一个逻辑。
若要使其按原样工作,请按如下方式使用:(此处对代码进行注释,只是为了显示错误部分,您可以删除此代码)
这个错误是不言自明的。看起来您正在render方法中调用setDefaultValue,该方法更新组件状态。尝试提供一个默认的“值”,并在下拉列表中添加一个“onChange”处理程序。错误是不言自明的。看起来您正在render方法中调用setDefaultValue,该方法更新组件状态。尝试提供一个默认的“值”,并在下拉列表中添加一个“onChange”处理程序。
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 }]
}