【问题标题】:Redux useDispatch return an Array React Hooks?Redux useDispatch 返回一个 Array React Hooks?
【发布时间】:2020-06-24 06:54:29
【问题描述】:

我在 React Hooks 中使用 useDispatch 制作了 Redux,但是当我调用 dispatch 结果变成 Array 而不是字符串。

我的调度代码

//Variable for dispatch and useSelector
  const profileStore = useSelector(state => state)
  const dispatch = useDispatch()

//Code dispatch
     <TouchableOpacity onPress={() => dispatch(profileAction('Profile Change'))}>
        <Text>helo</Text>
      </TouchableOpacity>

我的减速器


import { PROFILE_SAMPLE } from '../types'


export default (state = 'Prev State Profile', { type, payload }) => {
  switch (type) {

  case PROFILE_SAMPLE:
    return { ...state, ...payload }

  default:
    return state
  }
}

我的行动

import {PROFILE_SAMPLE} from '../types'
export const profileAction = (payload) => ({
  type: PROFILE_SAMPLE,
  payload
})

【问题讨论】:

  • 不要在您的开关盒中传播有效负载。而是只返回有效负载。

标签: reactjs react-native redux react-hooks


【解决方案1】:

问题是你正在传播你的字符串值并在更新reducer时返回一个对象。

如果您想简单地替换字符串,请更新它

case PROFILE_SAMPLE:
    return payload

或者如果你想合并字符串更新它像

case PROFILE_SAMPLE:
    return `${state}${payload}`

【讨论】:

  • 我认为在这种情况下只需返回 payload as 新状态就足够了。
  • @DrewReese 是的,这是理想的情况,但我只是添加了另一个选项,以防万一这就是 OP 正在寻找的内容
猜你喜欢
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 2020-09-29
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
相关资源
最近更新 更多