Tengo varios elementos de Input y cada vez que el usuario escribe en estas entradas, llamo a la función handleChange() que debería decir lo que el usuario ha escrito y qué entrada ha escrito.
Esto es lo que he hecho:
handleChange(text, name) { console.log("test: "text+" "+name); } //http://facebook.github.io/react-native/releases/0.23/docs/textinput.html for (var p = 0; p < 20; p++){ products.push (<TextInput name={p} onChangeText={(text, name) => this.handleChange(text, name)}></TextInput> ); } la función console.log dentro handleChange muestra correctamente el texto escrito por el usuario pero no muestra correctamente la variable de name , lo que resulta undefined .
¿Cuál se supone que es el name ? Todo lo que está haciendo es establecer el nombre en un número entero, pero aquí hay una manera de hacerlo funcionar:
handleChange(text, name) { console.log("test: "text+" "+name); } //http://facebook.github.io/react-native/releases/0.23/docs/textinput.html for (let p = 0; p < 20; p++){ products.push (<TextInput onChangeText={(text) => this.handleChange(text, p)}></TextInput> ); }handleChange= (name) => { return (text) => { console.log("test: "name+" "+text); }}; [https://hackernoon.com/curry-away-in-react-7c4ed110c65a][1] for (let p = 0; p < 20; p++){ products.push (<TextInput onChangeText={this.handleChange(p)}> </TextInput> ); }