TypeError:无法读取未定义的--reactjs属性'props'

时间:2018-12-10 05:27:19

标签: reactjs

我有一个tabcontainer组件(子组件)不受控制的组件,实际上我不知道我在用正确的方式和内容组件(父组件)

contents.js

class Contents extends React.Component {
  state = {
    value: 0
  };

  handleChange = (event, value) => {
    this.setState({ value });
  };

  render() {
    const { classes } = this.props;
    const { value } = this.state;

    return (
      <div className={classes.root}>
        <AppBar position="static" color="default">
          <Tabs
            value={value}
            onChange={this.handleChange}
            scrollable
            scrollButtons="on"
            indicatorColor="primary"
            textColor="primary"
          >
            <Tab label="Wallet" />
            <Tab label="Transactions" />
            <Tab label="Add Fund" />
            <Tab label="Withdraw" />
            <Tab label="Add Bank Account" />
            <Tab label="Transfer" />
          </Tabs>
        </AppBar>
        {value === 0 && <TabContainer>Item One</TabContainer>}
        {value === 1 && <TabContainer>Item Two</TabContainer>}
        {value === 2 && <TabContainer>Item Three</TabContainer>}
        {value === 3 && <TabContainer>Item Four</TabContainer>}
        {value === 4 && <TabContainer>Item Five</TabContainer>}
        {value === 5 && <TabContainer>Item Six</TabContainer>}
      </div>
    );
  }
}

tabcontainer.js

import React from 'react';
import PropTypes from 'prop-types';
import Typography from '@material-ui/core/Typography';

const TabContainer = props => {
  return (
    <Typography component="div" style={{ padding: 8 * 3 }}>
      {this.props.children}
    </Typography>
  );
};

TabContainer.propTypes = {
  children: PropTypes.node.isRequired
};

export default TabContainer;

我收到以下错误 TypeError:无法读取未定义的--reactjs属性'props'

我不知道我是在使用道具还是通过函数 prototype 传递正确的道具,还是需要 class

任何人都能知道我要去哪里。

1 个答案:

答案 0 :(得分:3)

尝试一下:

   <Typography component="div" style={{ padding: 8 * 3 }}>
                {props.children}
   </Typography>

请勿在功能组件中使用this.props。