Значения полей добавляются в коллекцию как нулевые с помощью React Hooks + Firestore - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над приложением React Native, и у меня есть форма, которую я хочу опубликовать в Firestore, используя React Hooks. Это почти работает, но значения полей отображаются как нулевые в Firebase. Что я делаю неправильно? Используем реактив нативный 0.60.5 и реактив нативный firebase 5.6.0. Заранее спасибо!

const [ trackTitle, setTitle ] = useState('')
const [ artistName, setArtist ] = useState('')
function onSubmit(e) {
    firestore()
    .collection('tracks')
        .add(
          {
          trackTitle,
          artistName
        })
}
<TextInput 
     value={trackTitle} 
     onChange={e => setTitle(e.target.value)}
     style={styles.submissionInput}
     multiline={false}
/> 

<TextInput 
     value={artistName} 
     onChange={e => setArtist(e.target.value)}
     style={styles.submissionInput}
     multiline={false}
/> 
<TouchableOpacity
     onPress={onSubmit}
     style={styles.navButtons}>

Снимок экрана консоли Firebase:

1 Ответ

0 голосов
/ 13 апреля 2020

Проблема в том, что требуемое значение находится не в e.target.value, а в e.text, поэтому onChange={e => setTitle(e.target.value)} должно быть onChange={e => setTitle(e.text)}

Однако я бы посоветовал вам использовать onChangeText={newValue => setTitle(newValue)} а еще лучше, onChangeText={setTitle}

RN Docs

<TextInput 
     value={trackTitle} 
     onChangeText={setTitle}
     style={styles.submissionInput}
     multiline={false}
/> 

<TextInput 
     value={artistName} 
     onChangeText={setArtist}
     style={styles.submissionInput}
     multiline={false}
/> 
...