【发布时间】:2016-08-16 11:42:23
【问题描述】:
当您从下拉列表中选择某些内容时,这个小组件会更改 URL。一切正常.. 除了后退按钮。如果我按下它,其他一切都会改变,但下拉菜单不会改变。
具体是怎样的?
- 如果我进入登录页面,默认值为 All
- 现在我选择红色
- 现在蓝色
- 红色再次
- 终于蓝色
- 现在,如果我单击返回按钮,下拉菜单始终显示最后选择的值(在我的示例中为 蓝色)
如何解决这个问题?
class MyComponent extends React.Component {
constructor (props) {
super(props)
this.state = {
selected: {
// This only affects dropdown if landing to page
value: this.props.params.color, // Get param from url
label: // Some irrelevant uppercase magic here
}
}
}
static defaultProps = {
colors: [
{value: 'all', label: 'All'},
{value: 'red', label: 'Red'},
{value: 'blue', label: 'Blue'}
]
}
render() {
return (
<Dropdown
options={this.props.colors} {/* All options */}
value={this.props.selected} {/* Selected option */}
onChange={this.handleSelect.bind(this)}
/>
)
}
handleSelect(color) {
this.setState({selected: color})
browserHistory.push(`/${color.value}`)
}
}
【问题讨论】:
标签: reactjs react-router