Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 除了通过render()函数之外,还有其他方法触发ReactDOM.createPortal吗?_Reactjs - Fatal编程技术网

Reactjs 除了通过render()函数之外,还有其他方法触发ReactDOM.createPortal吗?

Reactjs 除了通过render()函数之外,还有其他方法触发ReactDOM.createPortal吗?,reactjs,Reactjs,就文档而言,触发ReactDOM.createPortal的唯一方法是在有状态组件的render()函数中运行它: class MyComponent extends React.Component { ... render() { return ReactDOM.createPortal( this.props.children, domNode ); } } 没有父组件需要是有状态组件的情况下,还有其他方法可以

就文档而言,触发
ReactDOM.createPortal
的唯一方法是在有状态组件的
render()函数中运行它:

class MyComponent extends React.Component {
    ...
    render() {
      return ReactDOM.createPortal(
        this.props.children,
        domNode
      );
    }
}
没有父组件需要是有状态组件的情况下,还有其他方法可以做到这一点吗?

这会行不通吗

const MyComponent = ({ children, domNode }) => (
   ReactDOM.createPortal(
     children,
     domNode
   );
)

你想如何使用它?有什么特殊情况吗?+1。我想从按钮的onClick()处理程序呈现一个模态。我知道我可以修改组件的状态,并让它将模式呈现为门户,但我正在寻找一个更通用的解决方案。我想在一个函数中使用它,该函数返回一个承诺,该承诺装载提供的组件并为其提供解析处理程序。不幸的是,它从未在指定的元素中装入任何内容。react和Promissions不能很好地结合在一起。在这种情况下,
MyComponent
必须包含在有状态组件的
render
函数中。这就是我试图解决的问题,它是否可以在父组件不在有状态组件中的情况下运行。