javascript - 重写reactjs中的组件toString方法

标签 javascript html reactjs web

如何在reactjs中重写类组件的toString方法?
这是代码

class C1 extends React.Component{
  render(){
    return (
      <div>
        {C2.toString()}
      </div>
    )

  }
}

class C2 extends React.Component{
  toString(){
    return "c2";
  }
}

ReactDOM.render(
  <C1 />,
  document.getElementById('root')
);


https://codepen.io/cheng-mo/pen/Odvbjw?&editable=true&editors=0010
预计在页面上显示“c2”而不是整个对象字符串

最佳答案

类组件必须实现 render() 方法,因为它是强制性的。在您的代码中,C2 组件将无法工作,因为它没有实现 render 方法。所以将C2类组件改为功能组件

    export function C2{
        return "c2";
    }

并将您的 C1 组件更改为如下所示

   class C1 extends React.Component{
     render(){
        return (
         <div>
            <C2 />
        </div>
        ) }
   }

如果您继续 C2 的类(class)组件,那么

改变

   class C2 extends React.Component{
        toString(){
            return "c2";
        }
   }

 class C2 extends React.Component{
         render(){
              return "c2"
         }
   }

C1 组件应如下所示

  class C1 extends React.Component{
     render(){
        return (
         <div>
            <C2 />
        </div>
        ) }
   }

关于javascript - 重写reactjs中的组件toString方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54615622/

相关文章:

javascript - 在构建 Electron 产品时如何提供自己的版本

javascript - 如何构建响应式 Vuetify 应用栏

javascript - 如何使用 Ajax 将文档上传到 Web api,而不使用 html 用户控件或表单?

css - 如何对齐 React Flexbox 中的文本?

reactjs - React 原生性能问题

JavaScript:如何计算 2 天前的日期?

javafx 2 javascript api - 获取 java Controller

html - Safari 和背景剪辑 : text not working well on multiple lines of display:inline text element

html - 在手机屏幕尺寸上将div变成链接

javascript - props 的大小会影响 React 组件的性能吗?