React Native 中 ReactDOM 和 document.body 的等效变量是什么?(世博会)

hel*_*eer 5 javascript reactjs react-native react-navigation expo

我正在构建一个Modal用于 Web 上的 ReactJS 的组件。我小时候将其附加Modal到并根据需要安装/卸载。document.body

这是图表(Stephen Grider 的 Udemy 在线课程) 在此输入图像描述

我的问题是 React Native 中没有 ReactDOM 或 document.body。这是我的 modal.py

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { store } from '../store';
import { Provider } from 'react-redux';
class Modal extends Component {
  comoponentDidMount() {
    this.modalTarget = document.createElement('div');
    this.modalTarget.className = 'modal';
    document.body.appendChild(this.modalTarget);
    this._render();
  }

  _render() {
    ReactDOM.render(
      <Provider store={store}>
        <div>{this.props.children}</div>
      </Provider>,
      this.modalTarget
    );
  }

  componentWillUpdate() {
    this._render();
  }

  componentWillUnmount() {
    ReactDOM.unmountComponentAtNode(this.modalTarget);
    document.body.removeChild(this.modalTarget);
  }

  render() {
    return <noscript />;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 Expo,它默认加载 App.js!并且没有 document.body 和 ReactDOM。我怎么解决这个问题?

Sin*_*pcs 4

我们在react-native中没有任何DOM。您应该创建一个模态组件并将其导入到您要使用的其他组件中。你的模态的位置必须是绝对的,为了显示模态,你可以向它传递一个道具。

您可以使用反应本机模式: https://facebook.github.io/react-native/docs/modal.html 或由这样的人创建的任何其他模式: https: //github.com/maxs15/react-native-模态框