我正在使用一个组件中的一个api来使用另一个名为datagrid的组件来呈现结果,如果我从一个名为datagrid的组件中使用了api,那么一切正常,但是这个想法是只使用一次该api,问题不是api,问题在于数据网格组件没有收到this.state的新值。
class Color extends Component {
state = {
fields: {
colorCodigo: null,
colorNombre: '',
}
};
componentDidMount() {
//CONSUMO API.
const params = this.props.match.params;
if (!params.id) {
return;
}
getDocument({
documentId: params.id,
fieldName: 'colorCodigo',
moduleName: params.module
}).then(document => {
if (!document) {
return;
}
this.setState({ fields: document });
});
}
render() {
return (
<Paper elevation={5} className={this.props.classes.mainPaper}>
<Datagrid datos={this.state.fields} />
</Paper >
);
}
}
export default withStyles(styles)(Color);
class Datagrid extends Component {
componentDidMount = () => {
console.log("aqui entra en el render de Color y no muestra nada y
esta bien pero en el re - render de color cuando se actualiza el
estado no llega aqui para trabajar con la data que llega de la
api");
console.log(this.props.datos);
}
render() {
const { classes } = this.props;
return (
<Paper className={classes.root}>
<Table className={classes.table}>
......
</Table>
</Paper>
);
}
}
export default withStyles(styles)(Datagrid);