开发者问题收集

ReactNative Expo Redux ReferenceError:找不到变量:文档

2021-01-28
1096

博览会: 3.27.4 => 4.1.3

react-native-cli:2.0.1

react-native: 0.62.2 => 0.63.4

@reduxjs/toolkit:1.5.0

react-redux:7.2.2

redux:4.0.5

我是React-Native的新手,并且正在尝试将Redux实施到我的Expo应用程序中。 此代码多次构建(我认为这是因为Expo registerRootComponent(App)),然后一旦运行,我就会得到:

“ referenterror:referenterror:找不到变量:文档: /strong>

我的index.js当前发生错误的情况:

428113506

我也尝试在其自己的功能中放入自己的功能,因为我遇到了类似的错误。请帮助我找到文件。

1个回答

不是一个完美的解决方案。

我无法让 ReactDOM.render 部分工作,但使用钩子似乎可以很好地完成重新渲染我的组件的工作。

步骤 1

从 index.js 中删除 RectDOM.render 并替换为标准 expo:

import { registerRootComponent } from 'expo';

import App from './App';

registerRootComponent(App);

步骤 2

使用 Provider 包围 App() 内容(不要忘记导入 Provider 和 store):

import store from './app/store';
import { Provider } from "react-redux";

function App () {
  return (
    <Provider store={store}>
      <Components/>
    </Provider>
  )
}

步骤 3

在您想要在 redux 内存发生更改时重新加载的组件中,创建对象的实例:

  const currentTicket = useSelector((state) =>
    state.tickets.find((ticket) => ticket.id == global.currentTicketID)
  );

注意:我的 redux store 是一个 ticket 对象数组,因此我必须使用数组 find 函数找到我想要处理的 ticket

然后创建一个接受实例值的钩子:

  useEffect(() => {
    //code you want to run on change of the instance value
  }, [currentTicket.num]);

注意:这仅当您具有功能组件(而非类)时才有效
Joseph Saunders
2021-02-04