javascript 在react 18中我如何使用createRoot来呈现一个类组件?

vfhzx4xs  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(251)

我正在尝试将我的应用转换为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>

在呈现行/上再次获得意外标记
如何呈现类组件?

mf98qq94

mf98qq941#

对于root.render来说,你的组件是class组件还是函数组件并不重要,无论是哪种情况,你都要传递React元素来呈现给它(通常是通过JSX创建元素),如果你使用旧的方法,如the page the dev version of React v18 links to所示:

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<Example />);

第一次
您只能将它用于应用程序的根目录,即顶层,而不能用于由该顶层元素呈现的元素中。

相关问题