defaultValue 不会改变...下拉反应
defaultValue doesn't change... dropdown react
我有一个下拉菜单,可以从提取中获取它的选项,当我 select 和选项时,请求另一个提取以将其保存到数据库中,然后它 return 将其保存到状态中所以 selected 值现在处于状态。
但!
我的下拉列表不会更新 selected 值,即使它在数据库中正确更新。
下拉菜单:
<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>
被调用的方法。
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
);
}
updateAnswer 所做的只是一次提取,将值保存到数据库中的项目答案中。
你的问题标题说 defaultValue
但你没有在你的 Dropdown
组件中的任何地方使用该道具。当您在 Dropdown
组件或任何 SUIR 组件中定义 value
时,这意味着您必须自己控制所有其他输入交互,并且您会失去任何SUIR 组件附带的框状态控件。在某些情况下,您可能需要这个。
我建议将 value
道具更改为 Dropdown
上的 defaultValue
道具,这应该能满足您的期望。 Dropdown
只会用该值初始化自己,但它会在 UI 中按照您期望的方式进行更改。
我有一个下拉菜单,可以从提取中获取它的选项,当我 select 和选项时,请求另一个提取以将其保存到数据库中,然后它 return 将其保存到状态中所以 selected 值现在处于状态。 但! 我的下拉列表不会更新 selected 值,即使它在数据库中正确更新。
下拉菜单:
<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>
被调用的方法。
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
);
}
updateAnswer 所做的只是一次提取,将值保存到数据库中的项目答案中。
你的问题标题说 defaultValue
但你没有在你的 Dropdown
组件中的任何地方使用该道具。当您在 Dropdown
组件或任何 SUIR 组件中定义 value
时,这意味着您必须自己控制所有其他输入交互,并且您会失去任何SUIR 组件附带的框状态控件。在某些情况下,您可能需要这个。
我建议将 value
道具更改为 Dropdown
上的 defaultValue
道具,这应该能满足您的期望。 Dropdown
只会用该值初始化自己,但它会在 UI 中按照您期望的方式进行更改。