Javascript 默认值不会更改。。。下拉式反应

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 }

我有一个下拉列表,它从一个fetch中获取它的选项,当我选择和选项时,另一个fetch被请求将其保存到DB中,然后它将其返回到状态中,因此所选值现在处于状态。 但是 我的下拉列表不会更新选定的值,即使它在数据库中正确更新

下拉列表:

<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
      );
}