2017-10-14 44 views
0

我正在構建一個Modal組件,基於此組件,我在網絡上使用了ReactJS。我將Modal作爲孩子附加到document.body,並根據需要安裝/卸載。ReactDOM和document.body在React Native中的等效變量是什麼? (Expo)

這裏是圖(斯蒂芬Grider的Udemy的在線課程) enter image description here

我的問題是沒有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 />; 
    } 
} 

我使用世博會和它的加載App.js默認!並沒有document.body和ReactDOM。我怎麼解決這個問題?

回答

1

我們在反應本機中沒有任何DOM。您應該創建一個模塊組件並將其導入您想要使用的其他組件。你的模態的位置必須是絕對的,並且爲了顯示模態,你可以傳遞一個道具給它。

您可以使用原生的反應模式: https://facebook.github.io/react-native/docs/modal.html 或個人喜歡這個創建的任何其他情態動詞: https://github.com/maxs15/react-native-modalbox

+0

我不想模態得到定位從屏幕CSS。我必須處理z-index才能彈出模態。我的方法是讓身體的小孩解決CSS問題。此外,組件上的僞造模態調用附着在身體上的模態。 –

+0

感謝您的回答。感謝您將時間放在我的問題上 –

相關問題