从状态dom中选择标签的值在反应中没有变化

时间:2018-08-12 22:20:16

标签: javascript html reactjs jsx

我正在从handleChange函数将选择标记JSX添加到状态“ dom”中,并将其呈现到网页中,一切正常,我正在接收数据,但是name =“ type”的选择标记的值没有改变并且保持不变或select的value属性不起作用

代码如下:

0 = a

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,解决方案可能很简单,只需将以下内容添加到您的handleChange箭头函数中(请参见下面的[UPDATE]注释):

handleChange = (e) => {

    this.setState({ 
        [e.target.name]: e.target.value
    });

    // [UPDATE] Extract the value that will be rendered into the select 
    // value with name "type" 
    const typeValue = e.target.value

    if (e.target.value === 'properties') {
        this.setState({
            dom: <select className="form-control form-control-lg" 
                name="type" value={typeValue} // [UPDATE] Inject the typeValue 
                                              // into the view
                onChange={this.handleChangeType}>
                <option value="" >Select Ad Type</option>
                <option value="all">Show All</option>
                <option value="ForRent">For Rent</option>
                <option value="ForSale">For Sale</option>
                <option value="NewProjects">New Projects</option>
            </select>
        });
    } else if (e.target.value === 'cars') {
        this.setState({
            dom: <select className="form-control form-control-lg" 
                name="type" value={typeValue} // [UPDATE] Inject the typeValue 
                                              // into the view
                onChange={this.handleChangeType}>
                <option value="Cars">Cars</option>
            </select>
        });
    }
}