Me gustaría definir una nueva matriz que contenga dos valores de estado. Esta matriz se enviará a la API. Mi primer enfoque que funcionó bien, al principio, fue:
const userRoles = { userName: this.state.userName, roles: this.state.userRoles }; putData('api/User/EditUserRoles', userRoles).then((result) => { const responseJson = result; if (responseJson) { this.setState({ msg: "User's roles updated successfully!" }); } });pero después de habilitar eslint - reaccionar/desestructurar-asignación aparecieron los siguientes errores:
así que cambié el código a
const { userName, userRoles } = this.state; const userNameBuffer = userName; const userRolesBuffer = userRoles; const userRolesArrayBuffer = { userName: userNameBuffer, roles: userRolesBuffer }; putData('api/User/EditUserRoles', userRolesArrayBuffer).then((result) => { const responseJson = result; if (responseJson) { this.setState({ msg: "User's roles updated successfully!" }); } });que funciona, pero no estoy contento con el uso de las variables adicionales de "búfer". ¿Hay alguna manera de escribir este código más "guapo" (por ejemplo, sin variables de "búfer") teniendo en cuenta la asignación de reacción/desestructuración?
Gracias por cada respuesta y perdón por cualquier error en mi inglés que pueda ocurrir.
no necesita guardar vars en el búfer, la forma más elegante y común es:
const { userName, userRoles } = this.state; const userRolesBuffer = { userName, // its not mistake, in object variables with same name can be assigned like this roles: userRoles }; putData('api/User/EditUserRoles', userRolesBuffer).then((result) => { const responseJson = result; if (responseJson) { this.setState({ msg: "User's roles updated successfully!" }); } });Bueno, la respuesta parece bastante fácil y entendí mal algo.
Pensé que era necesario declarar una matriz como
const exampleArray = { key1: "value1", key2: "value2" }que el resultado de JSON.stringify(exampleArray); parece
{ "key1": "value1", "key2": "value2" }pero parece que
const key1 = "value1"; const key2 = "value2"; const exampleArray = { key1, key2, }devuelve el mismo resultado...
así que mi código, emparejando reaccionar/desestructurar-asignación finalmente parece
const { userName, userRoles } = this.state; const roles = userRoles; putData('api/User/EditUserRoles', { userName, roles }).then((result) => { const responseJson = result; if (responseJson) { this.setState({ msg: "User's roles updated successfully!" }); } });Gracias por sus respuestas... especialmente Pavlo Demydiuk ^^