In my case, I use a select to maintain some search conditions like this:

```
<select onChange={this.props.onSelectChange}>
    <option value="" selected={this.props.searchTerms.condition== ""}>
       Select Option
    </option>
    <option value="opt1" label="opt1" selected={this.props.searchTerms.condition == "opt1"}>
       opt1
    </option>
    <option value="opt2" label="opt2" selected={this.props.searchTerms.condition == "opt2"}>
        opt2
    </option>
    <option value="opt3" label="opt3" selected={this.props.searchTerms.condition == "opt3"}>
        opt3
    </option>
</select>

```

You can see I'm using selected property in options to make the selected item is the value I set.

But in this way I will get warning from react said I should use value instead. After I change it like this:

```
<select onChange={this.props.onSelectChange} value={this.props.searchTerms.condition}>
   <option value="" }>
      Select Option
   </option>
   <option value="opt1" label="opt1" >
      opt1
   </option>
   <option value="opt2" label="opt2" >
      opt2
   </option>
   <option value="opt3" label="opt3">
      opt3
   </option>
</select>

```

The set value is not reflected to selected item. But the props is changed correctly, I print it some where and the value is right.

I used react-redux in this case, the prop is changed from a action dispatch from some button, in that action the search state will be updated and the search state is bind to prop by using redux.
Here is the redux related code:

Binding:

```
 export const mapDispatchToProps = (dispatch, ownProps) => ({
      onSelectChange: event => dispatch(updateSearchTermsAction("condition", event.target.value)),
      buttonClick: event => {//this is the issue event
        event.preventDefault();
        dispatch(updateSearchTermsAction("condition", "opt2"));
        return false;
      }
    });

```

Action:

```
export const updateSearchTermsAction = (key, value) => ({ type: UPDATE_SEACHTERMS, key: key, payload: value });

```

Reducer:

```
const initialState = fromJS({ panelState: true, searchTerms: { condition: "" }, data: [] });
export default (state = initialState, action) => {
  switch (action.type) {
    case UPDATE_SEACHTERMS:
      console.log(`${action.key} change detect ${action.payload}`);//correct here
      return state.setIn(["searchTerms", action.key], action.payload);
    default:
      return state;
  }

```

And for debug purpose, I output the whole 'searchTerms' to HTML like that:

```
<pre>{JSON.stringify(this.props.searchTerms, null, 2)}</pre>

```

After button clicked, the buttonClick is triggered, the action dispatched, from reducer I can see correct value in console, and the output in `Pre` is changed too, but the select does not change.

Please give me some advises about where might be the reason.