ReactJS:为什么API填充的HTML选择字段不会重置并且无法操作?

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>

下拉选项。项目从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>
                    {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
    });
}`