Javascript React Native Redux-将变量传递到分派
给定一个App.js文件,其中包含以下redux代码段:Javascript React Native Redux-将变量传递到分派,javascript,reactjs,react-native,redux,react-redux,Javascript,Reactjs,React Native,Redux,React Redux,给定一个App.js文件,其中包含以下redux代码段: const initialState = { selection: '' } const reducer = (state = initialState, action) => { switch (action.type) { case 'selection1': return { selection: 'selection1' } case 'selecti
const initialState = {
selection: ''
}
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'selection1':
return { selection: 'selection1' }
case 'selection2':
return { selection: 'selection2' }
}
return state
}
const store = createStore(reducer)
以及一个Redux.js子组件,其中包含一个选择器和Redux分派:
<Picker onValueChange={(itemValue) => this.props.changeSelection(itemValue)}>
<Picker.Item label="Option1" value="selection1">
<Picker.Item label="Option2" value="selection2">
</Picker>
function mapDispatchToProps(dispatch) {
return {
changeSelection: () => dispatch({ type: itemValue })
}
}
this.props.changeSelection(itemValue)}>
功能图DispatchToprops(调度){
返回{
changeSelection:()=>dispatch({type:itemValue})
}
}
我似乎不知道如何将选择器切换到的itemValue传递到dispatch中,然后在App.js reducer中更新状态。将itemValue传入这个.props.changeSelection()并将其设置为dispatcher中的类型是否正确?您需要更改此行
changeSelection: () => dispatch({ type: itemValue })
changeSelection: (itemValue) => dispatch({ type: itemValue })
按这条线
changeSelection: () => dispatch({ type: itemValue })
changeSelection: (itemValue) => dispatch({ type: itemValue })
changeSelection
应该有一个参数,即itemValue
顺便说一下,我认为不应该将itemValue
设置到action类型中,它与action有效负载更相关实际上,您可以这样调度一个action
{ type: 'UPDATE_SELECTION', payload: itemValue }
那么你的减速机是这样的
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'UPDATE_SELECTION':
return { ...state, selection: action.payload }
}
return state
}
你需要换一行
changeSelection: () => dispatch({ type: itemValue })
changeSelection: (itemValue) => dispatch({ type: itemValue })
按这条线
changeSelection: () => dispatch({ type: itemValue })
changeSelection: (itemValue) => dispatch({ type: itemValue })
changeSelection
应该有一个参数,即itemValue
顺便说一下,我认为不应该将itemValue
设置到action类型中,它与action有效负载更相关实际上,您可以这样调度一个action
{ type: 'UPDATE_SELECTION', payload: itemValue }
那么你的减速机是这样的
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'UPDATE_SELECTION':
return { ...state, selection: action.payload }
}
return state
}
啊,我明白了,那真是愚蠢的错误。谢谢你的帮助。啊,我明白了,那真是个愚蠢的错误。谢谢你的帮助。