我有一个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 。
任何人都能知道我要去哪里。
答案 0 :(得分:3)
尝试一下:
<Typography component="div" style={{ padding: 8 * 3 }}>
{props.children}
</Typography>
请勿在功能组件中使用this.props。