我有一些硬編碼值的選擇器。在價值變化上,我希望使用我商店中的動作創建器功能,使用選定的值更新我的redux商店。我遇到了一個問題,但onValueChange偵聽器似乎沒有爲每個選擇更改調用。Picker onValueChange沒有被每個選擇調用
選取器代碼
<Picker selectedValue={this.props.settings.colorScheme}
onValueChange={(value, itemIndex) => this.props.onValueChange({prop: 'colorScheme', value})}>
<Picker.Item value="blue" label="Blue"/>
<Picker.Item value="green" label="Green"/>
<Picker.Item value="orange" label="Orange"/>
<Picker.Item value="purple" label="Purple"/>
<Picker.Item value="red" label="Red"/>
</Picker>
方法通入組件來處理值的變化。我在這裏設置了斷點,但它們通常只會觸發其他選擇。從藍色開始,然後選擇橙色火焰。然後選擇綠色,它不會着火,但隨後選擇紅色,它會再次着火。
handleValueChange({prop, value}) {
this.props.updateSettings({prop, value})
}
這裏是我的終極版行動的創建者
export function updateSettings ({prop, value}) {
return {
type: UPDATE_SETTINGS,
payload: ({ prop, value }),
}
}
我的渲染
render() {
return (
<Settings
settings={this.props.settings}
onValueChange={this.handleValueChange.bind(this)}
/>
)
}
供應https://github.com/facebook/react-native/issues/15556 –