React Material UI Обновление значений TextField - PullRequest
0 голосов
/ 23 января 2019

Я начинаю сессию вот так

state = {
    firm: null,
    office: null,
    salesCode: null,
    account: null
}

У меня каждое TextField показывается так:

<TableCell>
    <TextField
        id="standard-bare"
        defaultValue={items.data[i].firm}
        margin="normal"
        onChange={(e) => this.handleChange(e, items.data[i].id)}
    />
</TableCell>

Тогда у меня есть событие handleChange

handleChange({ event, id }) {
    const { data } = this.state;
    data[id] = event.target.value;
    this.setState({data})
}

Когда я запускаю и редактирую текст внутри TextField, я получаю ошибку ниже

TypeError: Cannot read property 'target' of undefined
UserDataTable.handleChange:75
  72 |    
  73 |    handleChange({ event, id }) {
  74 |        const { data } = this.state;
> 75 |        data[id] = event.target.value;
     | ^  76 |        this.setState({data})
  77 |    }
  78 | 

Я пытаюсь реализовать функцию редактирования таблицы. Поэтому, если пользователь редактирует текст, я получаю новую обновленную информацию и выполняю вызов API для соответствующего обновления значений.

1 Ответ

0 голосов
/ 23 января 2019

Вы не передаете объект в handleChange для извлечения, но больше отдельных параметров, поэтому

Изменение

handleChange({ event, id }) {

К

 handleChange(event, id) {

Edit:

Нет данных, определенных в состоянии, но вы обращаетесь к ним и пытаетесь установить входное значение для объекта данных с помощью неверного идентификатора. Это должно быть что-то вроде ниже

     handleChange(event, id) {
        this.setState({
              [id]: event.target.value
        })
    }
...