ReactNative Expo Redux ReferenceError:找不到变量:文档
Posted
技术标签:
【中文标题】ReactNative Expo Redux ReferenceError:找不到变量:文档【英文标题】:ReactNative Expo Redux ReferenceError: Can't find variable: document 【发布时间】:2021-05-02 10:45:59 【问题描述】:世博会:3.27.4 => 4.1.3
react-native-cli: 2.0.1
反应原生:0.62.2 => 0.63.4
@reduxjs/工具包:1.5.0
react-redux: 7.2.2
redux:4.0.5
我是 react-native 的新手,正在尝试将 Redux 实施到我的 Expo 应用程序中。 这段代码构建了多次(我认为这是因为 expo registerRootComponent(App)),然后一旦它运行我得到一个:
“ReferenceError:找不到变量:文档”
我的 index.js 目前出现错误的地方是这样的:
import registerRootComponent from 'expo';
import App from './App'
import React from 'react'
import ReactDOM from 'react-dom'
import store from './app/store'
import Provider from 'react-redux'
ReactDOM.render(
<Provider store=store>
<App />
</Provider>,
document.getElementById('root')
)
registerRootComponent(App);
我也尝试过将它自己的功能放入其中,因为我遇到了类似的错误,这有帮助。
function App ()
return (
ReactDOM.render(
<Provider store=store>
<MainFunc />
</Provider>,
document.getElementById('root')
)
)
但它又一次找不到文件。请帮我找文件。
【问题讨论】:
【参考方案1】:不是一个完美的解决方案。
我无法使 ReactDOM.render 部分工作,但使用钩子似乎可以很好地重新渲染我的组件。步骤 1
从 index.js 中删除 RectDOM.render 并替换为标准 expo:import registerRootComponent from 'expo';
import App from './App';
registerRootComponent(App);
第二步
使用 Provider 将 App() 内容包围起来(不要忘记导入 Provider 并存储):import store from './app/store';
import Provider from "react-redux";
function App ()
return (
<Provider store=store>
<Components/>
</Provider>
)
第三步
在 redux 内存发生更改时要重新加载的组件中,创建对象的实例: const currentTicket = useSelector((state) =>
state.tickets.find((ticket) => ticket.id == global.currentTicketID)
);
注意:我的 redux 存储是一个票据对象数组,所以我必须使用数组查找函数找到我想要使用的票据
然后创建一个接收实例值的钩子:
useEffect(() =>
//code you want to run on change of the instance value
, [currentTicket.num]);
注意:这仅在您有功能组件时才有效(不是类)
【讨论】:
以上是关于ReactNative Expo Redux ReferenceError:找不到变量:文档的主要内容,如果未能解决你的问题,请参考以下文章
使用 Expo 取消 React Native 中的异步获取请求
如何使用 Expo 清理(重置缓存)React Native。不知道是否缓存问题