Хотите установить значение для ключа массива в состоянии реакции

В приведенном ниже коде у меня есть состояние внутри массива emplist с некоторыми ключами, и с помощью события onchange() я хочу установить значение для ключей массива emplist. Как я могу установить эти значения, пожалуйста, помогите мне :).

import React from 'react';

export default class Registrations extends React.Component{
   constructor(props){
     super(props);
      this.state = {
        EmployeeList:[
            { EmployeeId : '' },
            { EmployeeName :'' },
            { EmployeeSalary :'' },
            { EmployeeAddress : '' },
            { EmployeeDetails :false },
        ],
    };
}

handleChangeEvent = (e) =>{
    // some code actions//
}

  render(){
    var {EmployeeId,EmployeeName,EmployeeSalary,EmployeeAddress} = this.state;
    return(
            <div>
                <form>
                    <input type = "text" placeholder = "Enter EmployeeId" onChange = {this.handleChangeEvent} 
                     value = {EmployeeId} name='EmployeeId'/><br />
                    <input type = "text" placeholder = "Enter EmployeeName" onChange = {this.handleChangeEvent} 
                     value = {EmployeeName} name='EmployeeName'/><br />
                    <input type = "text" placeholder = "Enter EmployeeSalary" onChange= 
                     {this.handleChangeEvent} value = {EmployeeSalary} name='EmployeeSalary'/><br />
                    <input type = "text" placeholder = "Enter EmployeeAddress" onChange= 
                      {this.handleChangeEvent}  value = {EmployeeAddress} name='EmployeeAddress'/><br />
                    <button onClick = {this.handleSubmit}>Submit</button>
                </form>
            </div>
        );
    }
    }

Можете ли вы перефразировать то, что вы ищете? Из вашего описания пока ничего не ясно. Кроме того, предоставьте любой код, который вы пробовали до сих пор.

Nick 23.12.2020 04:33

Почему вы моделируете EmployeeList как массив объектов с одним свойством каждый? Не лучше ли было бы, чтобы EmployeeList был объектом со свойствами?

Tholle 23.12.2020 04:37

Структура данных вашего состояния не имеет смысла, это должен быть просто один объект, а не массив из 5 объектов. Затем, чтобы обновить одно из этих свойств, onChange просто нужно передать ключ для изменения и значение, на которое его нужно изменить.

Jayce444 23.12.2020 04:39

@ Толле ... Я не понял твоего вопроса. Я новичок в реакции.

Sri Krishna 23.12.2020 04:54

@Nick.... в массиве EmployeeList я хочу установить значения с помощью события onChange(). мой код.....handleChangeEvent = (e) =>{ let x = [...this.state.EmployeeList]; x[e.target.name] = e.target.value; это.setState({x}); }

Sri Krishna 23.12.2020 04:59
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
5
442
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Можете ли вы объяснить больше о том, что вы хотите сделать.

В приведенном выше коде вы вводите данные для каждой части данных внутри одного объекта сотрудника, поэтому ваше состояние должно иметь следующую форму:

this.state = {
  Employee: {
    EmployeeId: '',
    EmployeeName: '',
    EmployeeSalary: '',
    EmployeeAddress: '',
    EmployeeDetails: false
  }
};

  handleChangeEvent = (e) => {
    this.setState({
      Employee: {...this.state.Employee, [e.target.name]: e.target.value }
    })
  };

  render() {
    var {
      EmployeeId,
      EmployeeName,
      EmployeeSalary,
      EmployeeAddress,
    } = this.state.Employee; // change the destructuring as well
  }

Спасибо. теперь с событием onChange() мы должны установить значения для идентификатора сотрудника, имени сотрудника и т. д.

Sri Krishna 23.12.2020 05:17

Можете ли вы дать мне код события onchange (), пожалуйста.

Sri Krishna 23.12.2020 05:33

Другие вопросы по теме