2017-07-31 40 views
0

React Nativeのテキスト入力をボタンをクリックして追加するにはどうすればよいですか?たとえば、 "+"ボタンを押すと、ビューの下部にテキスト入力が追加されます。React Nativeでテキスト入力を動的に追加する方法

EDITED: ここに私のコードです(無関係のものはすべて削除されています)。何らかの理由で働かない。ボタンをクリックしても何もしません。

import React, { Component, PropTypes } from 'react'; 
    import { StyleSheet,NavigatorIOS, Text, TextInput, View, Button, 
      TouchableHighlight, TouchableOpacity, ScrollView, findNodeHandle, 
      DatePickerIOS} from 'react-native'; 
    import TextInputState from 'react-native/lib/TextInputState' 

    export default class App extends React.Component { 
     constructor(props) { 
     super(props); 
     this.state = {textInput: [], 
      date: new Date(), 
     } 
     } 

     addTextInput = (key) => { 
     let textInput = this.state.textInput; 
     textInput.push(<TextInput key={key} />); 
     this.setState({ textInput }) 
     } 

     render(){ 
     return(
      <View> 
      <Button title='+' onPress={() => 
       this.addTextInput(this.state.textInput.length)} /> 
      {this.state.textInput.map((value, index) => { 
       return value 
      })} 
      </View> 
     ) 
     } 
    } 
+0

イム申し訳ありませんが、何のためにあなたは 'TextInputState'を使うのか? –

+0

iOSキーボードの「次へ」ボタンを押すと、1つのテキスト入力から次のテキスト入力に移動します。この問題を解決するために現在実行しているコードでは、私はそれを使用していません。 –

答えて

2

これはそのための一例である:

import React, { Component } from 'react'; 
import { AppRegistry, View, Text, Button, TextInput} from 'react-native'; 

class App extends Component { 
    constructor(props){ 
    super(props); 
    this.state = { 
     textInput : [] 
    } 
    } 
    addTextInput = (key) => { 
    let textInput = this.state.textInput; 
    textInput.push(<TextInput key={key} />); 
    this.setState({ textInput }) 
    } 
    render(){ 
    return(
     <View> 
     <Button title='+' onPress={() => this.addTextInput(this.state.textInput.length)} /> 
     {this.state.textInput.map((value, index) => { 
      return value 
     })} 
     </View> 
    ) 
    } 
} 

は、多分それはあなたを助けることができる:)

+0

{this.state.textInput.map((value、index)=> { 戻り値 })}これはどういう意味ですか?このブロックの最初の行にエラーが表示されます。なぜなら、「矢印関数のパラメータでは無効な左辺です」ということです。また、別のビュー用に別々のtextInput配列を持つ方法があるので、あるボタンをクリックすると、特定のボタンが含まれている最も外側のビューにテキスト入力が追加されます。 –

+0

'this.state.textInput'は' 'コンポーネントをループする配列で、' map'はコンポーネントをループするためのもので、 'value'はthis.state.textInput配列の値です。よく私のデバイスで:) –

+0

まだ助けを必要として申し訳ありません、私はちょうど最近React Nativeを学び始めました。私はすべてのコードをコメントアウトして答えをコピーして貼り付けました。また、アプリをもう一度実行したときに、画面の中央に「+」ボタンがありますが、押しても何もしません。 –

関連する問題