REDUX

return{...state,importGridData:importGridData)

Aquí, la importación GridData asigna a las variables de estado dentro del estado inicial redux

Procesamiento de componentes

const {importGridData} = this.props
this.setState({importGrdData,importGridData)

Estoy obteniendo los datos aquí en el componente de reacción usando los accesorios Y quiero asignar estos datos a mi componente de cuadrícula de datos

<DataGrid data={this.state.importGrdData}

No puedo dar setState dentro del método de renderizado, entonces, ¿cómo puedo actualizar mis datos de cuadrícula de datos?

¿Hay algo que falta aquí?

Gracias por adelantado.

1
Pintu 10 sep. 2018 a las 07:34

3 respuestas

La mejor respuesta

Parece que desea actualizar el estado del componente desde el estado redux.

En ese caso, como mencionó Bhojendra, puede usar el método componentDidUpdate como se muestra a continuación.

componentDidUpdate(prevProps, prevState) {
  const { importGridData } = this.props;

  if(prevProps.importGridData !== importGridData) {
    // update the state
    this.setState({ importGrdData: importGridData })
  }
}

Pero, en lugar de copiar el estado redux al estado local y luego vincular los datos a DataGrid, recomendaría usar directamente el estado redux para vincular la cuadrícula en el método render si no tiene ningún otro dependencia.

render() {
   const { importGridData } = this.props;
   return <DataGrid data={importGridData} />;
}
1
Aruna 10 sep. 2018 a las 05:13

Estoy usando el ciclo de vida "componentWillReceiveProps" para recibir los próximos accesorios.

componentWillReceiveProps(nextProps){  
    this.setState({   
        importGrdData:    nextProps,  
    });
}

El código es un ejemplo. Espero que pueda ser útil para usted. Gracias

0
Araz Babayev 10 sep. 2018 a las 09:02

Debe ser dos puntos : no coma ,:

this.setState({importGrdData:importGridData})

Ah, veo la diferencia de ortografía (Grd y Grid):

Además, puede escribir: (porque tiene el mismo nombre)

this.setState({importGrdData})

Puede actualizar el estado en el enlace componentDidUpdate para que después de obtener los accesorios actualice el estado:

componentDidUpdate(prevProps, prevState) {
  if(this.state.importGrdData !== prevState.importGrdData) {
    // update the state
  }
}

Para obtener más información sobre componentDidUpdate, consulte los documentos.

Solo en casos excepcionales, puede usar getDerivedStateFromProps.

0
Bhojendra Rauniyar 10 sep. 2018 a las 04:46