У меня есть массив с именами пользователей в функции useEffect, и я пытаюсь отобразить его в опции выбора, используя функцию карты.
let dropdown= React.createRef();
useEffect(() => {
setstate({
users: ['test user', 'lokesh'],
username: 'test user'
})
});
И у меня есть форма, в которой я хочу отобразить ее в раскрывающемся списке
<form onSubmit={onsubmit}>
<div className="form-group">
<label for="username">Username</label>
<select ref={dropdown}
required
className="form-control"
value={state.username}
onChange={onChangeUsername}
>
{state.users.map(user => {
return (
<option
key={user}
value={user}>
{user}
</option>
)
})}
</select>
</div>
<form>
Страница загружается, но выдает ошибку, когда я нажимаю другие входные тексты
0
Lokesh Bajracharya
9 Ноя 2019 в 09:33
1 ответ
Я сделал здесь пример stackblitz, надеюсь, это решение, которое вам нужно. Извините, но я не знаю, как создать здесь скрипку. То, как вы используете здесь useEffect
, неверно. И в функциональном компоненте это не createRef
, это useRef
для справки.
useEffect(() => {
setstate({
users: ['test user', 'lokesh'],
username: 'test user'
})
},[]);
1
Akhil Aravind
9 Ноя 2019 в 10:07
Я добавил изменения, так что вы можете сразу увидеть изменение имени пользователя. надеюсь, это помогло.
– Akhil Aravind
9 Ноя 2019 в 10:12
react-nyb4ng.stackblitz.io не могли бы вы проверить эту ошибку
– Lokesh Bajracharya
9 Ноя 2019 в 10:20
Отмечая, пожалуйста, поделитесь ссылкой на редактор
– Akhil Aravind
9 Ноя 2019 в 10:21
Привет, у меня проблема. Я не использовал функцию стрелки для установки значения в свойстве onChange. У меня было setState, например setState=({username: e.target.value}). но я не понимаю почему. могли бы вы объяснить
– Lokesh Bajracharya
9 Ноя 2019 в 10:33
Похожие вопросы
Новые вопросы
reactjs
React — это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную парадигму на основе компонентов и стремится быть эффективным и гибким.
useState
.useEffect
, хуки предназначены только для функционального компонента.