React Nativeを勉強していますが、stateの扱いにつまづいています。
アンケートフォームのようなものを作りたいのですが、
- 値の受け渡し(stateを用いると思うのですが、FormInputの値をどう表すかわかりません)
- 値を受け取って処理するコードをどこに書くか、どう書くか
に困っています。
React.js
1import React, {Component} from 'react'; 2import {DatePickerIOS, StyleSheet, View} from 'react-native'; 3import { FormLabel, FormInput } from 'react-native-elements'; 4 5class Hoge extends Component{ 6 constructor(){ 7 this.state={ 8 name: "", 9 date: new Date(), 10 comment: "" 11 } 12 } 13 render(){ 14 return( 15 <View style={styles.container}> 16 <FormLabel>名前</FormLabel> 17 <FormInput onChangeText={() => this.setState({name: this.name})}/>/* ここがわからない */ 18 <DatePickerIOS onDateChange={() => this.setState({date: this.date})}/> 19 <FormLabel>コメント</FormLabel> 20 <FormInput onChangeText={() => this.setState({comment: this.comment})}/> 21 </View> 22 ); 23 } 24} 25 26export default class App extends Component{ 27 render(){ 28 return( 29 <Hoge /> 30 ); 31 } 32} 33 34const styles = StyleSheet.create({ 35 container: { 36 flex: 1, 37 justifyContent: 'center', 38 backgroundColor: '#fff', 39 } 40});
<FormInput onChangeText={() => this.setState({name: this.name})}/>
はサンプルを参考に考えて書いていたのですが、inputに入力された値自体が渡せていないと思います。どうやってinputに入力された値をstateに保存するのでしょうか。
次に、今はボタンは上記コードにはないのですが、SUBMITボタンを作成し、押下するとinputの値をとってきてファイルに書き込むという処理をしたいです。
この部分について
- どこに書くと適切か(App.jsではないですよね?)
- submitのタイミングでフォームの値を取得するのは、stateを参照するので正しいか
という点が気になっています。
初心者で、ドキュメントを読んでもわからず、ネット上にもフォーム作成についてわかりやすい記事がなくて困っています。ご教授いただければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。