【发布时间】:2018-06-03 07:10:47
【问题描述】:
我有一个对象数组。我希望我的函数 clicked() 向我的对象添加一个新参数(可见:false)。我不确定如何在不重新创建整个对象数组的情况下告诉 react 更新特定键的状态。
首先,有没有一种有效的方法来做到这一点(即使用扩展运算符)?
其次,也许我的整个结构都关闭了。我只想单击我的元素,然后让它收到一个指示它不再可见的道具。如果需要,有人可以建议一种替代方法吗?
import React, { Component } from 'react';
import { DefaultButton, CompoundButton } from 'office-ui-fabric-react/lib/Button';
import { Icon } from 'office-ui-fabric-react/lib/Icon';
import OilSite from './components/oilsite';
import './index.css';
class App extends Component {
constructor(props){
super(props);
this.state = {
mySites: [
{
text: "Oil Site 1",
secondaryText:"Fracking",
key: 3
},
{
text: "Oil Site 2",
secondaryText:"Fracking",
key: 88
},
{
text: "Oil Site 3",
secondaryText:"Fracking",
key: 12
},
{
text: "Oil Site 4",
secondaryText:"Fracking",
key: 9
}
],
}
};
clicked = (key) => {
// HOW DO I DO THIS?
}
render = () => (
<div className="wraper">
<div className="oilsites">
{this.state.mySites.map((x)=>(
<OilSite {...x} onClick={()=>this.clicked(x.key)}/>
))}
</div>
</div>
)
};
export default App;
【问题讨论】:
-
另外为了以后参考,在定义类方法时,不要使用箭头函数。箭头函数没有作用域,这意味着它们没有
this。对任何类方法定义使用普通函数。
标签: reactjs