Как объявить свойство объекта с помощью const

#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), выполнит эту работу