我需要在构造函数中定义一个状态变量来存储以下项目:
另外,我需要对变量执行以下函数:
有哪些不同的方法可以做到这一点?什么是最好的方法呢?
截至目前,我正在做这样的事情
//selectedCars= {} is a dictionary defined in the state contructor of other class
class xyz extends React.Component {
constructor(props) {
super(props);
}
getMeSomething(car, color, event){
//car can be any car like honda or mercedes
//selected cars is a dictionary that is passed from other class in to this class as props
var existingValues = []
if (this.props.selectedCars[car] != undefined) {
existingValues = this.props.selectedCars[car];
}
var indexOfCar = existingValues.indexOf(car);
if (indexOfCar == -1) {
if (event.target.checked) {
existingValues.push(car);
}
}
else if (!event.target.checked) {
existingValues.splice(indexOfCar, 1);
}
this.props.selectedCars[car] = existingValues
}
render() {
return (
<div style={{ ...}}>
{
this.props.cars.map((car, i) => {
return <div key={i}><span className="yhn"><label><input type="checkbox" onChange={this.getMeSomething.bind(this, car, this.props.color)} /><span></span></label>{car}</span></div>
})
}
</div>
);
}
}
答案 0 :(得分:0)
我建议你使用Array模型。 如果存在,您可以轻松找到存储的项目。
查找
abc=[];
abc [0]=123;
abc [1]=456;
//and it is better to add them like below:
abc.push (789);
abc.push (101);
在你必须使用函数索引之前找出你的变量是否存储在abc上:
I = abc.indexOf(456); // Returns 1 that means you can find 456 on abc [1]
I2 = abc.indexOf (999); // Returns -1 that means the 999 is not stored on abc yet
表现非常完美,您不必担心自己的搜索问题。
但是,根据您的使用情况,对象或词典对您有用。所以请告诉我。