我正在与朋友一起开发应用程序,我们陷入了一个问题... 我们想问一些球员的名字。 我们单击一个按钮以添加一些TextInput。 (这里一切正常) 但是现在,我们想找回我们输入的文字。
我试图将它们保存为状态,但是我知道如何用一个文本而不是很多文本来做到这一点。
addTextInput = (key) => {
let textInput = this.state.textInput;
if (textInput.length < 10) {
*textInput.push(<TextInput style={{ height: 40, borderColor: 'black', borderWidth: 2 }} key={key}
onChangeText={(text) => this.setState({ nomJoueur: text })}
/>);*
Data.addNombreJoueur();
console.log(nombreJoueurs);
}
this.setState({ textInput })
}
我试图这样做:
addTextInput = (key) => {
let textInput = this.state.textInput;
let nomJoueur = this.state.nomJoueur;
if (textInput.length < 10) {
textInput.push(<TextInput style={{ height: 40, borderColor: 'black', borderWidth: 2 }} key={key}
onChangeText={
(text) => nomJoueur.push(text)
}
nomParticipants2={this.state.nomJoueur}
/>);
Data.addNombreJoueur();
console.log(nombreJoueurs);
}
this.setState({ textInput })
}
但是,我得到了
"nomParticipants2": Array [
[23:17:16] "z",
[23:17:16] "ze",
[23:17:16] "zed",
[23:17:16] "zedz",
[23:17:16] "zedzx",
[23:17:16] "zedzxz",
[23:17:16] "zedzxzx",
[23:17:16] "r",
[23:17:16] "rz",
[23:17:16] "rze",
[23:17:16] "rzez",
[23:17:16] "rzezd",
[23:17:16] "e",
[23:17:16] "ez",
[23:17:16] "ezc",
[23:17:16] "ezcz",
[23:17:16] "ezczc",
[23:17:16] ],
我真的需要您的帮助! 谢谢你们
编辑:感谢内德拉根的帮助
要解决我的问题,我有n种不同的功能来添加inputText:
addTextInput = (key) => {
console.log('Bonjour');
let textInput = this.state.textInput;
let nomJoueur0 = this.state.nomJoueur0;
let nomJoueur1 = this.state.nomJoueur1;
let nomJoueur2 = this.state.nomJoueur2;
let nomJoueur3 = this.state.nomJoueur3;
...
if (textInput.length == 0) {
textInput.push(<TextInput style={{ height: 40, borderColor: 'black', borderWidth: 2 }} key={key}
onChangeText={(text) => this.setState({ nomJoueur0: text })
}/>);
Data.addNombreJoueur();
console.log(nombreJoueurs);
}
else if (textInput.length == 1) {
textInput.push(<TextInput style={{ height: 40, borderColor: 'black', borderWidth: 2 }} key={key}
onChangeText={(text) => this.setState({ nomJoueur1: text })
}/>);
Data.addNombreJoueur();
console.log(nombreJoueurs);
}
...
答案 0 :(得分:0)
如果您只有几个TextInput,并且不介意创建额外的函数,则始终可以为每个组件创建一个单独的函数。较干净的解决方案是将当前的onChangeText
更改为onChangeText = {value => this.setState({value})},其中value是状态中变量的名称。因此,使用上面的代码段,如果您将值更改为username
,那么this.state.username
将会被更新。