React Native Paper与Redux集成报错及环境搭建问题求助
解决React Native Paper + Redux 环境搭建的模块解析错误
兄弟,我一眼就瞅出问题出在哪了——你把Redux的Provider导错地方了!你现在从react-native-paper的内部私有路径导入Provider,这根本不是Redux需要的那个Provider,自然会触发模块找不到的错误。
具体修正步骤:
替换错误的Provider导入
你需要从react-redux包导入Redux专属的Provider,而不是从react-native-paper的内部文件里瞎找。把这行错误的导入:import { Provider as StoreProvider} from 'react-native-paper/lib/typescript/src/core/settings';直接换成:
import { Provider as StoreProvider } from 'react-redux';至于react-native-paper的
PaperProvider导入是完全正确的,不用动它。补充Redux相关的必要导入
看你代码里用到了createStore、applyMiddleware和thunk,这些也得从对应的包导入,不然会报变量未定义的错误:import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import RootReducer from './path-to-your-root-reducer'; // 记得替换成你RootReducer的实际路径
修正后的完整index.js代码:
/** @format */ import { AppRegistry } from 'react-native'; import App from './App'; // 正确导入Redux的Provider import { Provider as StoreProvider } from 'react-redux'; import { Provider as PaperProvider } from 'react-native-paper'; // 补充Redux核心方法和中间件的导入 import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import RootReducer from './RootReducer'; // 替换成你的RootReducer实际位置 const store = createStore(RootReducer, applyMiddleware(thunk)); export default function MyApp() { return ( <StoreProvider store={store}> <PaperProvider> <App /> </PaperProvider> </StoreProvider> ); } AppRegistry.registerComponent(appName, () => MyApp);
为什么会出现这个错误?
你之前导入的react-native-paper/lib/typescript/src/core/settings是react-native-paper的内部私有模块,这个路径并没有对外暴露给开发者使用,所以React Native的模块解析器自然找不到它。而Redux的Provider是react-redux包提供的核心组件,专门用来把Redux Store注入到整个应用的组件树中,这才是你需要的那个Provider。
改完之后重新启动应用,应该就能正常运行了——毕竟你不用Redux的时候应用能正常启动,说明react-native-paper的基础配置是没问题的,就是Provider的导入环节搞错了。
内容的提问来源于stack exchange,提问作者akshay2739
相关产品推荐
相关产品推荐

