# #reactjs #firebase #google-cloud-firestore
Вопрос:
Создаю страницу профиля студентов, и я хочу сохранить данные моего пользователя в документе firebase. В настоящее время, когда пользователь вводит текстовые данные (например, имя), они сохраняются в firebase, но когда они выбирают элемент из выпадающего списка, он не сохраняется, но создается поле год.
Вот как я называю выпадающий список:
lt;divgt;Year:lt;/divgt; lt;DropdownYear className={classes.yearDropdown} // onClick={setYear} onChange={(event) =gt; { setYear(event.target.value) }} gt;lt;/DropdownYeargt;
Вот как я создаю раскрывающийся список:
return ( lt;form onSubmit={this.handleSubmit}gt; lt;labelgt; lt;select value={this.state.value} onChange={this.handleChange} gt; lt;option value="default"gt;Yearlt;/optiongt; lt;option value="freshman"gt;Freshmanlt;/optiongt; lt;option value="sophomore"gt;Sophomorelt;/optiongt; lt;option value="junior"gt;Juniorlt;/optiongt; lt;option value="senior"gt;Seniorlt;/optiongt; lt;option value="graduate"gt;Graduatelt;/optiongt; lt;/selectgt; lt;/labelgt; lt;/formgt; ) } } export default dropdownYear
Это то, что загружает значение в firebase.
const [year, setYear] = useState('') useEffect(() =gt; { const getStudents = async () =gt; { const data = await getDocs(studentsCollectionRef) //loop through documents in collection setStudents( data.docs.map((doc) =gt; ({ ...doc.data(), key: doc.id })) ) } getStudents() }, [studentsCollectionRef]) const classes = useStyles()
Комментарии:
1. Не могли бы вы поделиться частью, которая отвечает за загрузку выбранного значения в firebase (или тем, что вы пробовали до сих пор)? Фрагмент, который вы опубликовали, кажется правильным.
2. конечно, я отредактирую сообщение, чтобы включить этот фрагмент, так как я не могу опубликовать его в комментариях.
3. если вы зарегистрируетесь
event.target.value
, что вы получите? Если вы проверите состояниеyear
в инструментах разработчика React, сможете ли вы его изменить и отображается ли оно? потому что, если вы видите правильное значение, пока оно сохраняется в состоянии, это должно быть хорошо для Firebase