我正在尝试将我的应用转换为React 18的渲染方法。
我有一个类组件不能呈现root
元素。如何获取createRoot元素来呈现该组件?该放在哪里
const root = ReactDOM.createRoot(document.getElementById("myrenderelement"));
// please notice I'm not rendering to root as I said above ^^^
这超出了类定义的范围,在状态中......在哪里?如果我把它放在类之外,我会得到这个错误:
Syntax error: Unexpected token (80:6)
78 |
79 |
> 80 | root.render() {
| ^
81 | return (
82 | <div className="myclass">
83 | <div className="container">
相同
root = ReactDOM.createRoot(document.getElementById("myrenderelement"));
root.render() {
并将
ReactDOM.createRoot(document.getElementById("myrenderelement")).render() {
我总是在那一行说“意外的标记”
如果我尝试:
class MyClass extends React.Component {
constructor(props) {
super(props)
this.state = {
<my state vars>
root: ReactDOM.createRoot(document.getElementById("myrenderelement"))
}
}
....
然后
this.state.root.render() { <whatever>
在呈现行/上再次获得意外标记
如何呈现类组件?
1条答案
按热度按时间mf98qq941#
对于
root.render
来说,你的组件是class
组件还是函数组件并不重要,无论是哪种情况,你都要传递React元素来呈现给它(通常是通过JSX创建元素),如果你使用旧的方法,如the page the dev version of React v18 links to所示:第一次
您只能将它用于应用程序的根目录,即顶层,而不能用于由该顶层元素呈现的元素中。