Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native Redux-将变量传递到分派_Javascript_Reactjs_React Native_Redux_React Redux - Fatal编程技术网

Javascript React Native 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

给定一个App.js文件,其中包含以下redux代码段:

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
}

啊,我明白了,那真是愚蠢的错误。谢谢你的帮助。啊,我明白了,那真是个愚蠢的错误。谢谢你的帮助。