2017-01-04 42 views
0

我有多个Input元素,每次用户类型为这些输入我打电话handleChange()函数应该告诉什么用户记录,具有输入他键入行程多PARAMS onChangeText输入元件功能 - 阵营本地

。这是我做了什么:

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>); 
} 

console.loghandleChange功能正确地显示用户输入的文本,但不能正确显示name变量导致undefined

+1

https://facebook.github.io/react-native/docs/handling-text-input.html - 它似乎没有第二个参数。 – G0dsquad

+0

onChangeText默认采用参数值作为输入的文本,因此只有一个参数。你可以尝试的是'onChangeText {(text,p)=> this.handleChange(text,p)}}'看看它是否有效 –

+0

我该如何解决这个问题? – splunk

回答

1

什么是name应该是?所有你正在做的是设置名称为整数,但这里有一个方法,使其工作:

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>); 
} 
+0

如果我喜欢你说每次handleChange被称为p总是等于19,最后一个循环索引值。相反,我想要这样:如果我改变第一个输入“p”(在params中传递的文本)应该是1,如果我改变第二个输入“p”应该是2,依此类推。在我的代码中似乎名称= {p}不会将名称分配为“p”。我试着用value = {p},输入仍然是空的,而如果我做value =“a”,所有20个输入都保存“a”内容。如何将变量“p”分配给输入的名称和值? – splunk

+1

仍然不明白你的意思,'text'变量是用户输入到文本字段中的任何内容。另外,如果将'var p = 0'更改为'let p = 0',这可以解决您的其他问题。 –