[英]Is it safe to use ReactDOM.createPortal() with document.body?
[英]What are the equivalent variables for ReactDOM and document.body in React Native? (Expo)
我正在构建用于Web上ReactJS的Modal
组件。 我将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 />;
}
}
我正在使用Expo,并且默认情况下正在加载App.js! 而且没有document.body和ReactDOM 。 我怎么解决这个问题?
我们在react-native中没有任何DOM。 您应该创建一个模态组件并将其导入要使用的其他组件中。 您的模态的位置必须是绝对的,并且要显示模态,可以向其传递一个道具。
您可以使用react native modal: https ://facebook.github.io/react-native/docs/modal.html或像这样的人创建的任何其他模式: https : //github.com/maxs15/react-native- modalbox
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.