0
この小さなコンポーネントは、ドロップダウンから何かを選択するとURLを変更します。すべて正常に動作します.. 戻るボタンを除きます。私はそれを押すと他のすべてが変わるが、ドロップダウンは変わらない。ドロップダウン、リアルータと戻るボタン
どのくらい正確ですか?
- 私は、ランディングページに移動した場合、デフォルト値はすべて
- ある今、私は今レッド
- を選択ブルー
- レッド再び
- 最後にブルー
- 今私は戻るボタンをクリックすると、ドロップダウンは常に
どのようにこの問題を克服するために(私の例ではブルー)最後に選択した値を示して?
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}`)
}
}
すごいです!もし '
{this.getSelected()}
'が '出力を変数に追加し、代わりに 'Drop selected'に渡します:' const selected = this.getSelected() '。明確にするための答えを更新しました。 –