gpt4 book ai didi

javascript - Redux 返回默认值

转载 作者:行者123 更新时间:2023-11-30 11:35:37 25 4
gpt4 key购买 nike

我将 React Native 与 Redux 一起用于我正在构建的应用程序。我还使用了两个 npm 模块,react-native-simple-store 和 redux promise。在继续解释我的问题时,我将解释每一个的用法。

我有一个在 componentWillMount 方法中触发的基本 Action 创建器。这个 Action 创建者的目的是从用户的设备中检索数据数组。我使用 react-native-simple-store 来执行此操作,因为它总是返回您请求的数据作为 promise 。这是我的 Action 创作者:

import store from 'react-native-simple-store'
export const GET_ALARMS = 'get_alarms'

export const getAlarms = () => {
// this variable will hold the promise
let alarms = store.get('alarms')

return {
type: GET_ALARMS,
payload: alarms
}
}

在我的 reducer 中,我希望收到我在 action creator 中请求的数组。但是,它不起作用,我每次都返回一个空数组。这是我的 reducer :

import GET_ALARMS from '../actions/getAlarms'

export default (state = [], action) => {
console.log(action)
switch (action.type) {
case 'GET_ALARMS':
return [...state, action.payload]
}

return state
}

有趣的是,当我 console.log 进入 reducer 的 Action 时,我在控制台中看到了这个:

Object { type: "get_alarms", payload: Array(3) }
payload: Array(3)
0: Object
1: Object
2: Object
type: "get_alarms"

这是我想要的数据,它只是一个包含 3 个对象的数组。它就在那里,但我遗漏了一些细节。

这方面有什么帮助吗?

最佳答案

reducer 中的两个错误

  1. 您错误地导入了 ACtion 常量,因为它不是默认导出,您需要使用 {}

  2. 在 Swtich 的情况下,使用这个不带引号的导入变量。

你的代码

import {GET_ALARMS} from '../actions/getAlarms'

export default (state = [], action) => {
console.log(action)
switch (action.type) {
case GET_ALARMS:
return [...state, action.payload]
}

return state
}

关于javascript - Redux 返回默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44570362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com