Javascript 更新状态的问题-反应
我在更新状态值时遇到问题,我正在使用Map渲染外部组件,因此无法访问此。因此,在单击组件时,我无法调用handleClick函数来更新状态值 以下是国家:Javascript 更新状态的问题-反应,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我在更新状态值时遇到问题,我正在使用Map渲染外部组件,因此无法访问此。因此,在单击组件时,我无法调用handleClick函数来更新状态值 以下是国家: this.state = { attributes : { hours : { }, cost : 0, amenities : defaultAmenities }, primary_category : "General" } 其中,default是带有大型ja
this.state = {
attributes : {
hours : {
},
cost : 0,
amenities : defaultAmenities
},
primary_category : "General"
}
其中,default是带有大型javascript对象的外部文件
渲染功能:
render() {
let basicAmenities, extendedAmenities
let basicAmenitiesList = [], extendedAmenitiesList = []
//Wrong way of storing this
let _this = this;
}
... More Logics / Switch Cases ...
let amenitiesList = basicAmenitiesList.map(function(item, index){
return <Attribute key={index} name={item.amenity_id} type={item.title} icon={item.icon} selected={item.isSelected} value="" onClick={_this.handleClick.bind(_this)}/>
})
单击属性后,我需要更新状态。控制台日志的结果附在下面。我需要以输入值为目标,但由于它返回整个div,如何获取name/value/placeholder的值
宠物
你可以从目标那里得到你需要的东西。但是,您需要在希望它成为目标的元素上设置onClick
,然后您将拥有它:
handleClick(e) {
const name = e.target.name;
const value = e.target.value;
const placeholder = e.target.placeholder;
console.log(placeholder);
}
如果要在其他地方设置onClick
,则需要发送所需的值,因此在Attribute
组件中,您将有一个函数,该函数将在单击时调用,并调用this.props.onClick({name:'',value:''})代码>
如果您需要在此函数中使用this
,并且您正在使用react with class。你可以这样写:
handleClick = (e) => {
console.log(this);
}
单击时需要什么值?@davintroon输入[name,value,disabled]中的值,并设置_this=这是正确的方法?不,我认为这不是最好的方法。只需绑定映射函数即可(或使用箭头函数)。您需要做的不仅仅是遵从道具。单击
中的。您需要在属性
组件中执行一些操作,以便在其onClick
上以args的形式发送正确的值。
handleClick(e) {
const name = e.target.name;
const value = e.target.value;
const placeholder = e.target.placeholder;
console.log(placeholder);
}
handleClick = (e) => {
console.log(this);
}