![](/img/trans.png)
[英]How to make a call back function to populate value prop of textinput onChangeText
[英]Update TextInput value of hash of array in onChangeText function
constructor(props) {
super(props);
this.state = {
answers: props.element.answers_data.map((answer, index) => {
return answer;
}
})
<TextInput
value = {this.state.answers[index].answer_text}
onChangeText={(answer_text) => {
this.setState({
answers: [
...this.state.answers.slice(0, index),
{answer: {answer_text}},
...this.state.answers.slice(index + 1,
this.state.answers.length)
]
});
}}
/>
我的答案數據結構就像= 0:{id:799,answer_text:“helloas fast”百分比:0}
我想更新答案文本並將其存儲在this.state.answers中,但是當我在textinput上寫文本並更新它時,我只得到hash的answer_text,我想要所有id,answer_text,哈希百分比。 所以,我需要建議。
提前致謝。
你沒有很好地處理你的數組數據。 您可以保留其結構,也可以使用answers_data.map
將它們轉換為字符串。
選項一的完整代碼:
constructor(props) {
super(props);
this.state = {
answers: props.element.answers_data.map((answer, index) => {
return { ...answer };
})
}
}
<TextInput
value = {this.state.answers[index].answer_text}
onChangeText={(answer_text) => {
this.setState({
answers: [
...this.state.answers.slice(0, index),
{ ...this.state.answers[index], answer_text },
...this.state.answers.slice(index + 1, this.state.answers.length)
]
});
}}
/>
備選方案二的完整守則:
constructor(props) {
super(props);
this.state = {
answers: props.element.answers_data.map((answer, index) => {
return answer.answer_text;
})
}
}
<TextInput
value = {this.state.answers[index]}
onChangeText={(answer_text) => {
this.setState({
answers: [
...this.state.answers.slice(0, index),
answer_text,
...this.state.answers.slice(index + 1, this.state.answers.length)
]
});
}}
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.