#javascript #react-native #react-hooks
Вопрос:
Мне нужно объявить переменную для formstate.title
из этого:
const initialState = { description: '', place: "", date: "", membersJoinedCounter: 0, title: "" }; const [formState, setFormState] = useState(initialState); function setInput(key, value,) { setFormState({ ...formState, [key]: value }) } const userTitle = await API.graphql(graphqlOperation(getUserTitle, {id: userInfo.attributes.sub})) formState.title = userTitle.data.getUser.title;
Как этого добиться?
Комментарии:
1. Мне нужно, чтобы formState.title был переменным, чтобы свойство обновлялось каждый раз, когда пользователь обновляет заголовок, прямо сейчас оно не обновляется в базе данных
2. вы изменяете состояние. обновите значение
formState
сsetFormState
помощью .3. «formState.title» уже является переменной. Вы где-нибудь «устанавливаете» состояние формы?
4. пожалуйста, проверьте обновленный код
Ответ №1:
неясно, что вы хотели спросить, но, предполагая, что вы хотите установить значение заголовка после извлечения данных, вы можете добиться этого с помощью метода setFormstate, предоставляемого useState hook (вы не можете напрямую устанавливать значения, так как formstate, возвращаемый useState hook, неизменен)
замените нижеприведенную строку в своем коде
formState.title = userTitle.data.getUser.title
с менее чем одним
setFormState(prev=gt;({...prev,title:userTitle.data.getUser.title}))
Комментарии:
1. пожалуйста, проверьте обновленный код, как я могу добавить свойство title в setFormState? Мне нужно, чтобы заголовок обновлялся каждый раз, когда пользователь меняет значение заголовка
2. @Tony «setInput» уже делает это.
3. вызов функции setInput, такой как setInput(«заголовок»,userTitle.data.getUser.title), выполнит эту работу