Tengo dos estados diferentes de la misma clase.
Por alguna razón, ambos se actualizan a través this.setState({selectedRecord: newValue})
:
selectedRecord: ModelClass, question: Array<ModelClass>,
La question
de estado se usa en una tabla para representar todos los datos, y el registro selectedRecord
de estado es una copia de la fila seleccionada, que se usa para modificar la fila a través de un formulario.
<Button type="primary" icon={<EditOutlined />} onClick={() => { this.setState({ selectedRecord: record }, () => { this.setState({ modalVisible: true }); }); }} />
Entonces, en el Formulario, modifico el estado selectedRecord
Registro a través de Entrada, Casilla de verificación ... y lo completo con un estado establecido, pero el problema es que los cambios también mutan el Estado de la question
.
sus dropdownItems
han sido mutados, intente esto para recuperar datos de sus elementos desplegables Temp.group = [...this.state.dropdownItems][index].group
Cuando haces esto:
let Temp = this.state.selectedRecord; Temp.group = this.state.dropdownItems[index].group; Temp.free = this.state.dropdownItems[index].free;
... en realidad modifica las propiedades ( muta ) su registro previamente seleccionado. Por lo tanto, ahora hace que se vea como su próximo seleccionado. Y afecta el estado de su pregunta si contiene una referencia a ese registro anterior.
No está claro por qué parece que necesita recuperar su registro previamente seleccionado en primer lugar, en lugar de simplemente configurar el siguiente con, por ejemplo:
// No need for Temp at all this.setState({ selectedRecord: this.state.dropdownItems[index] });