Мой ввод не работает в React, onChange тоже выглядит хорошо

Мой элемент ввода не позволяет мне вводить его, он будет отображаться со значением, которое я хочу, но я не могу удалить или отредактировать что-либо во вводе. Все написано правильно из того, что я видел.

Я гуглил и искал несколько форм SO, никто не смог мне помочь. Вот почему я спрашиваю сейчас

const GuestName =(props)=>{
    if (props.isEditing){
        return(
        <form>
        <input type='text' className='edit-guest-input'
         value = {props.guestName} onChange = {e => props.editGuest(e.target.value)}/>
         </form>
        )
    }

    return (
    <span>{props.guestName}</span>
    )
}

выше это вход, который не будет работать

  editGuest=(id, name)=>{
    this.setState({
      guest: this.state.guest.map((guest) =>{
        if (id===guest.id){
          return{
            ...guest,
            name
          }}
          return guest
      })
    })
  }

это код события onChange.

const GuestList =(props)=>

    <div>

        <ul>
            {props.guest.filter( guest => !props.filterUnconfirmedGuest || guest.isConfirmed)
            .map((guest, index) =>   <Guest 
                            key = {index}
                            guestName = {guest.guestName}
                            toggleGuestConfirmed = {props.toggleGuestConfirmed}
                            isConfirmed = {guest.isConfirmed}
                            toggleEditGuest = {()=> props.toggleEditGuest(guest.id)}
                            isEditing = {guest.isEditing}
                            editGuest = {editedName=> props.editGuest(editedName, guest.id)}
                            removeGuest = {()=> props.removeGuest(guest.id)}
                                />)}
       </ul>
    </div>

Здесь передается первый аргумент

Вероятно, небольшая проблема, которую я слишком устал, чтобы заметить, лол. Любая помощь приветствуется, спасибо за ваше время!

один аргумент против 2 аргументов

xadm 31.05.2019 03:07

Это было передано в родительский компонент, извините, я должен был опубликовать это, а не мой компьютер, иначе я бы

Jay 31.05.2019 03:11

Можете ли вы показать нам, где отображается идентификатор? скорее всего баг из-за этого

kkesley 31.05.2019 03:15

Я обязательно буду, я сейчас в отъезде, но когда я вернусь домой

Jay 31.05.2019 03:20

Я обновил его кодом, чтобы показать первый переданный аргумент

Jay 31.05.2019 03:42

в editGuest разве не должно быть guestName: name?

Matin Sasan 31.05.2019 03:53

АГА!! омг, я такой тупой... ошибка новичка. Слишком устал, спасибо @MatinSasan!!!!!

Jay 31.05.2019 04:35

Не могли бы вы принять мой ответ, пожалуйста: D @Jay

Matin Sasan 31.05.2019 04:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
44
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы вызываете функцию editGuests с одним аргументом

onChange = {e => props.editGuest(e.target.value)}

Но у него есть два аргумента в определении

editGuest=(id, name)=>{

}

Он передается в родительский компонент. Я выложу этот код, как только вернусь домой

Jay 31.05.2019 03:20

если он прошел, то вы должны добавить его здесь. onChange = {e => props.editGuest(passedValue, e.target.value)}

Tenusha Guruge 31.05.2019 03:24

Вы не можете вызвать editGuest с одним аргументом, как это определено с двумя.

Tenusha Guruge 31.05.2019 03:25

Я обновил его кодом, чтобы показать первый переданный аргумент, это работает?

Jay 31.05.2019 03:43
Ответ принят как подходящий

Думаю в editGuest должно быть guestName: name :)

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