我是React的新手,考虑保存当前状态的值时遇到问题。我不确定是否可以。
总而言之,我建立了一个返回如下HTML元素的函数。想法是在每次点击时保存一个div。
createQuestion(){
let CurrentQuestion=this.state.freetextinput;
return this.state.values.map((el, i) =>
<div key={i} className="QuestionBox">
{CurrentQuestion}
</div>
)
}
freetextinput的值在每次单击时都会更改。这个想法是保存所有freetextinput的值。假设freetextinput的值是1、2、3。我想拥有所有这三个值:
1
2
3
但是,我只得到这样的东西:
3
3
3
我想知道,是否有一种方法可以保存/存储this.state.freetextinput的值,这样我就可以获取所有三个值。
答案 0 :(得分:3)
新问题需要先放入数组才能被映射。这样的事情可能对您有用吗?
var savedQuestions = []
createQuestion(q){
savedQuestions.push(q)
this.setState({savedQuestions: savedQuestions}, () => {
var questionElements = this.state.savedQuestions.map((el, i) =>
<div key={i} className="QuestionBox">
{el}
</div>
)
})
return questionElements
}
答案 1 :(得分:2)
将自由文本输入的每个输入保存到数组中,这样您就可以访问所有值:
您可以检查以下代码沙箱:https://codesandbox.io/s/j835121kv
答案 2 :(得分:1)
您应该直接映射concurrently \"node config/launchLocalServer.js\" \"npm run server\" \"npm run client\"
:
由于this.state.freetextinput
是字符串,因此您首先需要使用split将其转换为数组
freetextinput
如果您的字符串看起来像createQuestion(){
return this.state.freetextinput.split(', ').map(el =>
<div key={el} className="QuestionBox">
{el}
</div>
)
}
,这将起作用
如果您的字符串是"1, 2, 3"
,请使用"123"
代替split('')