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
函数中。这就是我试图解决的问题,它是否可以在父组件不在有状态组件中的情况下运行。