![](/img/trans.png)
[英]React Native Redux : “Undefined is not an object (evaluating 'action.type')”
[英]redux-persist undefined is not an object (evaluating 'action.type')
我的还原
import { createStore } from 'redux';
import { persistStore, persistReducer } from 'redux-persist'
import AsyncStorage from '@react-native-async-storage/async-storage';
import user from '../reducer/index';
const persistConfig = {
key: 'root',
Storage: AsyncStorage,
};
const persistedReducer = persistReducer(persistConfig, user())
export function user(
state = {
id: '',
id_karyawan: '',
name: '',
tema: '',
presensi: '',
color: '',
akun: '',
},
action,
) {
switch (action.type) {
case 'CHANGE/USER':
return { ...state, ...action.payload };
}
return state;
}`
export const store = createStore(user);
export const persistor = persistStore(user);`
这是我的 app.js
import React, { Component } from 'react'
import { StyleSheet, Text, View } from 'react-native'
import Router from './router';
import { PersistGate } from 'redux-persist/integration/react';
import { Provider } from 'react-redux';
import { Store,persistor } from './redux/store/index';
export default class App extends Component {
render() {
return (
<Provider store={Store}>
<PersistGate persistor={persistor} loading={null}>
<Router/>
</PersistGate>
</Provider>
)
}
}
const styles = StyleSheet.create({})
这意味着在某些时候您正在调度undefined
- 一个常见的原因可能是您的动作创建者之一缺少return
语句 - 不幸的是您没有共享该代码。
一般来说,我想给你的反馈是你在这里写了一个非常过时的 Redux 风格——现代 Redux 不再使用switch..case
减少 ACTION_TYPES、不可变的 reducer 逻辑、手写动作创建者或createStore
而且只有 1 /4 作为结果的代码。 以及自 2019 年以来的所有内容。我强烈建议您遵循官方的 Redux 教程,因为不幸的是,许多外部教程已经过时了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.