Javascript 默认值不会更改。。。下拉式反应
我有一个下拉列表,它从一个fetch中获取它的选项,当我选择和选项时,另一个fetch被请求将其保存到DB中,然后它将其返回到状态中,因此所选值现在处于状态。 但是 我的下拉列表不会更新选定的值,即使它在数据库中正确更新 下拉列表:Javascript 默认值不会更改。。。下拉式反应,javascript,reactjs,dropdown,semantic-ui,semantic-ui-react,Javascript,Reactjs,Dropdown,Semantic Ui,Semantic Ui React,我有一个下拉列表,它从一个fetch中获取它的选项,当我选择和选项时,另一个fetch被请求将其保存到DB中,然后它将其返回到状态中,因此所选值现在处于状态。 但是 我的下拉列表不会更新选定的值,即使它在数据库中正确更新 下拉列表: <Form.Field className="dropdown"> <label>{answer.answerText}</label> <Dropdown key={ answer.name }
<Form.Field className="dropdown">
<label>{answer.answerText}</label>
<Dropdown
key={ answer.name }
value={answer.value <!--THIS IS UPDATED AFTER SELECTION, BUT DOESN'T SHOW -->}
style={{paddingLeft: pad}}
onChange={(e) => this.blurHandler(e.target.textContent,answer)}
name={ answer.name }
disabled={answer.settings.disabled}
options={answer.dropdownOptions}
/>
</Form.Field>
updateAnswer所做的只是将值保存到数据库中的项目答案中。您的问题标题显示defaultValue,但您不在下拉组件中的任何位置使用该属性。当您在下拉组件或任何SUIR组件上定义值时,这意味着您必须自己控制所有其他输入交互,并且您将丢失SUIR组件附带的任何开箱即用状态控件。在某些情况下,你可能会想要这个
我建议在下拉列表中将您的值道具更改为默认值道具,这会给您带来您期望的结果。下拉列表将仅使用该值初始化自身,但它将以您期望的方式在UI中进行更改。您是否还可以包括选择更新方法这是什么?看起来怎么样?你在使用redux吗?answers对象是一个状态吗?是的,我在使用redux,而answer对象是一个从父对象传下来的状态。我想问题是,调用api后redux存储可能不会更新,所以状态不会改变。你能将代码放在JSFIDLE或codesandbox中吗
blurHandler(e,answer) {
var answerValue = e;
var projectId = this.props.projectId;
this.props.updateAnswer('/api/update-answer',
answer.questionId,
projectId,
answer._id,
answerValue,
answer.settings.answerType
);
}