- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我正在使用 ReactDOM.createPortal
在其正常 DOM 放置之外呈现元素。我必须这样做,因为我正在与创建它自己的元素(在我的范围之外)的库进行交互,并且我必须将我的 DOM 元素之一放在他们的元素中。
我使用 createPortal
得到的是:
<div class="target">
<div />
<div class="myDiv" />
</div>
我要实现的目标:
<div class="target">
<div class="myDiv" />
<div/>
</div>
我似乎找不到如何更改 createPortal
的行为,使其将节点作为第一个子节点插入。
最佳答案
React 将使用 appendChild
来呈现门户,此行为是固有的,不会更改。
如果一个 portal 应该在其他 child 之前显示,则应该在现有的 DOM 中提供一个容器:
<div class="target">
<div class="portal-container">...rendered portal...</div>
<div />
</div>
如果这不可能,则应直接访问 DOM 以编程方式预先添加容器,类似于 this guide example :
class PrependedPortal extends React.Component {
portalRoot = document.querySelector('.target');
portalContainer = document.createElement('div');
componentDidMount() {
this.portalRoot.prepend(this.portalContainer);
}
componentWillUnmount() {
this.portalRoot.removeChild(this.portalContainer);
}
render() {
return ReactDOM.createPortal(
this.props.children,
this.portalContainer
);
}
}
prepend
isn't well-supported and needs to be polyfilled或替换为类似的 DOM 操作,例如jQuery 前置
。
关于javascript - 将 ReactDOM.createPortal 插入元素作为目标容器的第一个子元素(而不是最后一个子元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658703/
错误: TypeError: __WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.createPortal is not a function Moda
const ref = useRef(null); return ( <> {ref.current !== null && createPortal(Hell
所以我正在使用 ReactDOM.createPortal 在其正常 DOM 放置之外呈现元素。我必须这样做,因为我正在与创建它自己的元素(在我的范围之外)的库进行交互,并且我必须将我的 DOM 元素
我正在使用 React 16 并需要门户,但无法找到有关此功能的任何文档。有谁知道如何使用这个吗? https://github.com/facebook/react/pull/10675 感谢您的建
为了清楚起见,假设我有 3 个组件:, , 我正在尝试渲染 在 内, 没有渲染 (从中调用 )。 parent.js class Parent extends Component { ...
我正在开发一个 React 应用程序并尝试使用 ReactDOM.createPortal()将 html 内容添加到组件外部的 div(称为 ToDoItem)。 {ReactDOM.createP
我正在尝试获取 ReactDOM.createPortal要覆盖容器的内容,我也正在安装它。但是它似乎附加了Child。 是否可以覆盖内容?类似于 ReactDOM.render ? 这是我的代码:
我明白 it's probably a bad idea至 ReactDOM.render()进入 document.body。但是使用 ReactDOM.createPortal() 有什么问题吗?
我一直在绞尽脑汁试图弄清楚如何完成一些我认为很简单的事情(我知道......) 目标是获得一个非常最小和可重用的模态组件,我可以使用触发按钮或w/e在某种HOC中为其设置动画。 我正在使用 creat
新手在这里 react 。 TLDR:我有一个名为 createNotification 的辅助函数当调用时会插入 组件进入 container使用 render() 的元素。如果我使用 create
我使用 React 钩子(Hook)创建了一个应用程序。我有一个辅助函数 onClickOutsideHook(ref, callback)触发 callback当您在提供 ref 的组件外部单击时使
我的 React 应用程序中有这样的代码: import React from 'react'; import ReactDOM from 'react-dom'; import ComponentB
我正在尝试使用 slate-react 制作一个编辑器。我制作了悬停菜单,但 Next.js 渲染存在样式问题。所以我尝试在 Next.js 的默认 ID __next 下使用 React creat
我有一个组件,我在其中渲染了一些按钮。每个按钮都应该有它的工具提示。我想让工具提示在我 :hover 按钮时出现。但是因为我的工具提示不仅可以包含文本,所以我不能使用气球之类的东西,也不能只用 css
我是一名优秀的程序员,十分优秀!