React-native form not typing in TextInput












1















Giving the components below, I am unable to type in TextInput the letter is written and then deleted, it seems a problem with updating the state. Any clue?



class myContainerComponent extends Component {   
constructor(props) {
super(props)
this.onChange = this.onChange.bind(this)
}
onChange(value) {
this.setState({
value
})
}
render() {
return (
<PresentationalComponent
onChange={this.onChange}
value={this.state.value}
/>
)
}
}
class PresentationalComponent extends Component {
render() {
return(
<TextInput
onChangeText={this.props.onChange}
value={this.props.value}
/>
)
}

}


Any clue?










share|improve this question

























  • What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

    – Taz742
    Nov 21 '18 at 10:27













  • As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

    – steo
    Nov 21 '18 at 10:35











  • I think you need to initialize value to empty string in constructor state

    – Hemadri Dasari
    Nov 21 '18 at 10:40
















1















Giving the components below, I am unable to type in TextInput the letter is written and then deleted, it seems a problem with updating the state. Any clue?



class myContainerComponent extends Component {   
constructor(props) {
super(props)
this.onChange = this.onChange.bind(this)
}
onChange(value) {
this.setState({
value
})
}
render() {
return (
<PresentationalComponent
onChange={this.onChange}
value={this.state.value}
/>
)
}
}
class PresentationalComponent extends Component {
render() {
return(
<TextInput
onChangeText={this.props.onChange}
value={this.props.value}
/>
)
}

}


Any clue?










share|improve this question

























  • What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

    – Taz742
    Nov 21 '18 at 10:27













  • As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

    – steo
    Nov 21 '18 at 10:35











  • I think you need to initialize value to empty string in constructor state

    – Hemadri Dasari
    Nov 21 '18 at 10:40














1












1








1


1






Giving the components below, I am unable to type in TextInput the letter is written and then deleted, it seems a problem with updating the state. Any clue?



class myContainerComponent extends Component {   
constructor(props) {
super(props)
this.onChange = this.onChange.bind(this)
}
onChange(value) {
this.setState({
value
})
}
render() {
return (
<PresentationalComponent
onChange={this.onChange}
value={this.state.value}
/>
)
}
}
class PresentationalComponent extends Component {
render() {
return(
<TextInput
onChangeText={this.props.onChange}
value={this.props.value}
/>
)
}

}


Any clue?










share|improve this question
















Giving the components below, I am unable to type in TextInput the letter is written and then deleted, it seems a problem with updating the state. Any clue?



class myContainerComponent extends Component {   
constructor(props) {
super(props)
this.onChange = this.onChange.bind(this)
}
onChange(value) {
this.setState({
value
})
}
render() {
return (
<PresentationalComponent
onChange={this.onChange}
value={this.state.value}
/>
)
}
}
class PresentationalComponent extends Component {
render() {
return(
<TextInput
onChangeText={this.props.onChange}
value={this.props.value}
/>
)
}

}


Any clue?







reactjs react-native






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 11:38









B--rian

137120




137120










asked Nov 21 '18 at 10:22









steosteo

3,49622452




3,49622452













  • What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

    – Taz742
    Nov 21 '18 at 10:27













  • As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

    – steo
    Nov 21 '18 at 10:35











  • I think you need to initialize value to empty string in constructor state

    – Hemadri Dasari
    Nov 21 '18 at 10:40



















  • What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

    – Taz742
    Nov 21 '18 at 10:27













  • As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

    – steo
    Nov 21 '18 at 10:35











  • I think you need to initialize value to empty string in constructor state

    – Hemadri Dasari
    Nov 21 '18 at 10:40

















What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

– Taz742
Nov 21 '18 at 10:27







What returns onChangeText ? event or input value? type a console.log(value) in myContainerComponent => onChange

– Taz742
Nov 21 '18 at 10:27















As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

– steo
Nov 21 '18 at 10:35





As you can read on the docs it returns the value you're inputting: facebook.github.io/react-native/docs/textinput

– steo
Nov 21 '18 at 10:35













I think you need to initialize value to empty string in constructor state

– Hemadri Dasari
Nov 21 '18 at 10:40





I think you need to initialize value to empty string in constructor state

– Hemadri Dasari
Nov 21 '18 at 10:40












4 Answers
4






active

oldest

votes


















1














I believe both other answers are correct but you could simplify your code even more and get rid of the constructor declaration using an arrow function:



class myContainerComponent extends Component {

state = {
value: ''
}

onChange = (value) => {
this.setState({
value
})
}

render() {
return (
<PresentationalComponent
onChange={this.onChange}
value={this.state.value}
/>
)
}

}





share|improve this answer































    2














    Add this to your myContainerComponent constructor:



    this.state = {
    value: '',
    }





    share|improve this answer































      2














      You should initialise your state in your constructor:



      constructor(props){
      super(props);
      this.state = {
      value: ''
      }
      }





      share|improve this answer































        1














        import * as React from 'react';
        import { TextInput } from 'react-native';

        export default class App extends React.Component {
        constructor(props) {
        super(props)
        this.state = {
        value: {}
        };
        this.onChange = this.onChange.bind(this)
        }

        onChange(value) {
        this.setState({
        value
        })
        }

        render() {
        return (
        <PresentationalComponent
        onChange={this.onChange}
        value={this.state.value}
        />
        )
        }
        }

        class PresentationalComponent extends React.Component {

        render() {
        return(
        <TextInput
        onChangeText={this.props.onChange}
        value={this.props.value}
        />
        )}
        }





        share|improve this answer

























          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409917%2freact-native-form-not-typing-in-textinput%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          I believe both other answers are correct but you could simplify your code even more and get rid of the constructor declaration using an arrow function:



          class myContainerComponent extends Component {

          state = {
          value: ''
          }

          onChange = (value) => {
          this.setState({
          value
          })
          }

          render() {
          return (
          <PresentationalComponent
          onChange={this.onChange}
          value={this.state.value}
          />
          )
          }

          }





          share|improve this answer




























            1














            I believe both other answers are correct but you could simplify your code even more and get rid of the constructor declaration using an arrow function:



            class myContainerComponent extends Component {

            state = {
            value: ''
            }

            onChange = (value) => {
            this.setState({
            value
            })
            }

            render() {
            return (
            <PresentationalComponent
            onChange={this.onChange}
            value={this.state.value}
            />
            )
            }

            }





            share|improve this answer


























              1












              1








              1







              I believe both other answers are correct but you could simplify your code even more and get rid of the constructor declaration using an arrow function:



              class myContainerComponent extends Component {

              state = {
              value: ''
              }

              onChange = (value) => {
              this.setState({
              value
              })
              }

              render() {
              return (
              <PresentationalComponent
              onChange={this.onChange}
              value={this.state.value}
              />
              )
              }

              }





              share|improve this answer













              I believe both other answers are correct but you could simplify your code even more and get rid of the constructor declaration using an arrow function:



              class myContainerComponent extends Component {

              state = {
              value: ''
              }

              onChange = (value) => {
              this.setState({
              value
              })
              }

              render() {
              return (
              <PresentationalComponent
              onChange={this.onChange}
              value={this.state.value}
              />
              )
              }

              }






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 21 '18 at 10:54









              Kevin AmiranoffKevin Amiranoff

              2,73651337




              2,73651337

























                  2














                  Add this to your myContainerComponent constructor:



                  this.state = {
                  value: '',
                  }





                  share|improve this answer




























                    2














                    Add this to your myContainerComponent constructor:



                    this.state = {
                    value: '',
                    }





                    share|improve this answer


























                      2












                      2








                      2







                      Add this to your myContainerComponent constructor:



                      this.state = {
                      value: '',
                      }





                      share|improve this answer













                      Add this to your myContainerComponent constructor:



                      this.state = {
                      value: '',
                      }






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Nov 21 '18 at 10:48









                      kivulkivul

                      483114




                      483114























                          2














                          You should initialise your state in your constructor:



                          constructor(props){
                          super(props);
                          this.state = {
                          value: ''
                          }
                          }





                          share|improve this answer




























                            2














                            You should initialise your state in your constructor:



                            constructor(props){
                            super(props);
                            this.state = {
                            value: ''
                            }
                            }





                            share|improve this answer


























                              2












                              2








                              2







                              You should initialise your state in your constructor:



                              constructor(props){
                              super(props);
                              this.state = {
                              value: ''
                              }
                              }





                              share|improve this answer













                              You should initialise your state in your constructor:



                              constructor(props){
                              super(props);
                              this.state = {
                              value: ''
                              }
                              }






                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Nov 21 '18 at 10:49









                              PhobosPhobos

                              1016




                              1016























                                  1














                                  import * as React from 'react';
                                  import { TextInput } from 'react-native';

                                  export default class App extends React.Component {
                                  constructor(props) {
                                  super(props)
                                  this.state = {
                                  value: {}
                                  };
                                  this.onChange = this.onChange.bind(this)
                                  }

                                  onChange(value) {
                                  this.setState({
                                  value
                                  })
                                  }

                                  render() {
                                  return (
                                  <PresentationalComponent
                                  onChange={this.onChange}
                                  value={this.state.value}
                                  />
                                  )
                                  }
                                  }

                                  class PresentationalComponent extends React.Component {

                                  render() {
                                  return(
                                  <TextInput
                                  onChangeText={this.props.onChange}
                                  value={this.props.value}
                                  />
                                  )}
                                  }





                                  share|improve this answer






























                                    1














                                    import * as React from 'react';
                                    import { TextInput } from 'react-native';

                                    export default class App extends React.Component {
                                    constructor(props) {
                                    super(props)
                                    this.state = {
                                    value: {}
                                    };
                                    this.onChange = this.onChange.bind(this)
                                    }

                                    onChange(value) {
                                    this.setState({
                                    value
                                    })
                                    }

                                    render() {
                                    return (
                                    <PresentationalComponent
                                    onChange={this.onChange}
                                    value={this.state.value}
                                    />
                                    )
                                    }
                                    }

                                    class PresentationalComponent extends React.Component {

                                    render() {
                                    return(
                                    <TextInput
                                    onChangeText={this.props.onChange}
                                    value={this.props.value}
                                    />
                                    )}
                                    }





                                    share|improve this answer




























                                      1












                                      1








                                      1







                                      import * as React from 'react';
                                      import { TextInput } from 'react-native';

                                      export default class App extends React.Component {
                                      constructor(props) {
                                      super(props)
                                      this.state = {
                                      value: {}
                                      };
                                      this.onChange = this.onChange.bind(this)
                                      }

                                      onChange(value) {
                                      this.setState({
                                      value
                                      })
                                      }

                                      render() {
                                      return (
                                      <PresentationalComponent
                                      onChange={this.onChange}
                                      value={this.state.value}
                                      />
                                      )
                                      }
                                      }

                                      class PresentationalComponent extends React.Component {

                                      render() {
                                      return(
                                      <TextInput
                                      onChangeText={this.props.onChange}
                                      value={this.props.value}
                                      />
                                      )}
                                      }





                                      share|improve this answer















                                      import * as React from 'react';
                                      import { TextInput } from 'react-native';

                                      export default class App extends React.Component {
                                      constructor(props) {
                                      super(props)
                                      this.state = {
                                      value: {}
                                      };
                                      this.onChange = this.onChange.bind(this)
                                      }

                                      onChange(value) {
                                      this.setState({
                                      value
                                      })
                                      }

                                      render() {
                                      return (
                                      <PresentationalComponent
                                      onChange={this.onChange}
                                      value={this.state.value}
                                      />
                                      )
                                      }
                                      }

                                      class PresentationalComponent extends React.Component {

                                      render() {
                                      return(
                                      <TextInput
                                      onChangeText={this.props.onChange}
                                      value={this.props.value}
                                      />
                                      )}
                                      }






                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Nov 21 '18 at 10:55

























                                      answered Nov 21 '18 at 10:27









                                      SuprabhaSuprabha

                                      1566




                                      1566






























                                          draft saved

                                          draft discarded




















































                                          Thanks for contributing an answer to Stack Overflow!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function () {
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409917%2freact-native-form-not-typing-in-textinput%23new-answer', 'question_page');
                                          }
                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown







                                          Popular posts from this blog

                                          "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                                          Alcedinidae

                                          Origin of the phrase “under your belt”?