Javascript react中的可编辑json和setState
我尝试在textarea中使用map来显示一堆json对象。用户可以编辑它,但我必须验证所有json是否有效,然后才能将其传递到我的服务器 我在解析它时遇到问题,我应该在哪里解析它?在计算机上对其进行解析可以改变一种方式,但这很危险Javascript react中的可编辑json和setState,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我尝试在textarea中使用map来显示一堆json对象。用户可以编辑它,但我必须验证所有json是否有效,然后才能将其传递到我的服务器 我在解析它时遇到问题,我应该在哪里解析它?在计算机上对其进行解析可以改变一种方式,但这很危险 onChange = (e, idx) => { this.setState({ data: this.state.data.map((o,i) => { if(i === idx){ return
onChange = (e, idx) => {
this.setState({
data: this.state.data.map((o,i) => {
if(i === idx){
return JSON.parse(e.target.value) //dangerous
}
return o
})
})
}
您可以这样做:
onChange = (e, idx) => {
let dataToSet = [...this.state.data]
let error = false
try {
dataToSet = dataToSet.map((o,i) => {
if(i === idx){
return JSON.parse(e.target.value) //dangerous
}
return o
})
} catch(e) {
error = true
}
this.setState({
data: dataToSet,
error,
})
}
下面是处理这些场景的codesandbox链接 然后使用
尝试
/捕获
。请保存您的代码沙盒。它显示了死亡code@str你能详细说明一下吗?试试onChange中的catch?@stack26谢谢,没有注意到,保存了我的CodeSandbox,只是把它放在JSON.parse
块的周围。