簡體   English   中英

覆蓋React.js中的組件toString方法

[英]Override component toString method in reactjs

如何在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 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>
        ) }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM