簡體   English   中英

'children' 未定義 - 在 React 類組件中

[英]'children' is not defined - in React class component

所以,我有一個使用“React.Children.map()”的無狀態組件,我想把它變成一個類組件來給它添加一個狀態,但是因為我不能(據我所知)將 {children} 作為屬性傳遞再一次,我收到錯誤消息,指出未定義“兒童”。 我該如何定義孩子?

原始無狀態組件:

import React from 'react';

const Tabs = ({ children }) => (
  <div className="tabsPanel" onClick={clickHandler}>
    {React.Children.map(children, child =>
      React.cloneElement(child, { clickHandler: () => console.log('clicked') })
    )}
  </div>
);

export default Tabs;

類組件:

import React, { Component } from 'react';

class Tabs extends Component {
  render() {
    return (
      <div className="tabsPanel">
        {React.Children.map(children, child =>
          React.cloneElement(child, {
            clickHandler: () => console.log('clicked', child.props.children),
          })
        )}
      </div>
    );
  }
}

export default Tabs;

您尚未在 render 方法中定義children變量。 props 作為函數組件的第一個參數給出,但它們在類組件中的this.props中可用。

class Tabs extends Component {
  render() {
    return (
      <div className="tabsPanel">
        {React.Children.map(this.props.children, child =>
          React.cloneElement(child, {
            clickHandler: () => console.log('clicked', child.props.children),
          })
        )}
      </div>
    );
  }
}

暫無
暫無

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

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