ReactJS:为什么API填充的HTML选择字段不会重置并且无法操作?
下拉选项。项目从redux thunk加载:ReactJS:为什么API填充的HTML选择字段不会重置并且无法操作?,reactjs,redux,Reactjs,Redux,下拉选项。项目从redux thunk加载: <select value={this.state.project} className="form-control input-sm" name="project_id" onChange={this.handleFilterChange.bind(this)}> <option value=''>Select a project...</option>
<select value={this.state.project} className="form-control input-sm" name="project_id" onChange={this.handleFilterChange.bind(this)}>
<option value=''>Select a project...</option>
{this.props.projects.map(project =>
<option key={project.id} value={project.id}>{project.name}</option>)}
当我试图设置状态{project:}时,它不起作用。此外,我无法从下拉列表中选择值。我知道您的问题。好像是在检查是否有任何值,你通过了,比如
if (props.value) {
}
但当您将空字符串作为值传递时,javascript会将其转换为false,同样,也会使用null、0等
因此,请尝试传递给您的not'falsable'函数,例如-1,一旦更改,请检查您是否已将值更改为新值。好好享受吧 这是个打字错误!我的处理程序使用的名称为project\u id,但我的状态为project
谢谢你们的帮助 如果您可以与类似JSFIDLE的东西共享一个更完整的示例,我们将更容易为您提供帮助。它应该可以工作,可能在其他地方失败,检查控制台是否抛出任何错误,请提供更多代码。我不认为它是一个空值prblm,检查这个jsfiddle,它可以正确地使用值:我尝试使用简单的值,即声明性地指定项,它可以工作。如果它是从异步调用加载的,可能它不工作?我不这么认为,如果你在状态变量中做了更改,它将动态加载选项,检查这个选项最初是否包含任何选项,单击按钮后,它动态加载选项jsfiddle:你能用这个例子来解释你的ans吗?它可以正常使用空值jsfiddle:我尝试使用简单的值,即声明式指定项,它可以工作。如果从异步调用加载/从redux道具填充,那么它可能不工作?
if (props.value) {
}
handleFilterChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}`