Javascript ReactJs onClick添加类名
我是新手 所以我有个问题。触发onClick事件时,我的类名不会更新。问题可能出在哪里Javascript ReactJs onClick添加类名,javascript,reactjs,onclick,classname,Javascript,Reactjs,Onclick,Classname,我是新手 所以我有个问题。触发onClick事件时,我的类名不会更新。问题可能出在哪里 import React from "react"; import ReactDOM from "react-dom"; export default class Categorie extends React.Component { constructor() { super(); this.state = {categorie: "oldClass"}; } addClassName(
import React from "react";
import ReactDOM from "react-dom";
export default class Categorie extends React.Component {
constructor() {
super();
this.state = {categorie: "oldClass"};
}
addClassName() {
this.setState = ({categorie: "newClass"});
console.log(this.state.categorie);
}
render() {
return(
<div className={this.state.categorie} onClick={this.addClassName.bind(this)}>
<div className="categorieImgBlock">
<img className="categorieImg" src={this.props.img}/>
</div>
<span className="categorieName">{this.props.name}</span>
<span className="categorieCount">( {this.props.count} )</span>
</div>
);
}
}
从“React”导入React;
从“react dom”导入react dom;
导出默认类类别扩展React.Component{
构造函数(){
超级();
this.state={categorie:“oldClass”};
}
addClassName(){
this.setState=({categorie:“newClass”});
console.log(this.state.categorie);
}
render(){
返回(
{this.props.name}
({this.props.count})
);
}
}
您正在分配给setState
。应该是函数调用
addClassName() {
this.setState({categorie: "newClass"}); // NB!
console.log(this.state.categorie);
}
您正在分配给
setState
。应该是函数调用
addClassName() {
this.setState({categorie: "newClass"}); // NB!
console.log(this.state.categorie);
}
似乎是个小错误:
this.setState = ({categorie: "newClass"});
应该是:
this.setState({categorie: "newClass"});
另外,setState()
是异步的,因此您的console.log
语句在它之后可能不会显示实际的新状态,如果您真的想在设置新状态后执行某些操作,您应该给它一个回调函数作为第二个参数
this.setState({categorie: "newClass"}, () => console.log(this.state.categorie));
似乎是个小错误:
this.setState = ({categorie: "newClass"});
应该是:
this.setState({categorie: "newClass"});
另外,setState()
是异步的,因此您的console.log
语句在它之后可能不会显示实际的新状态,如果您真的想在设置新状态后执行某些操作,您应该给它一个回调函数作为第二个参数
this.setState({categorie: "newClass"}, () => console.log(this.state.categorie));
this.setState
是一个为您设置状态的函数,以便react可以采取适当的步骤来处理更新。您需要用一个新对象调用this.setState
,它会将对象映射到您当前的状态(控制台日志可能也无法工作,因为setState
是一个异步函数)
this.setState
是一个为您设置状态的函数,以便react可以采取适当的步骤来处理更新。您需要用一个新对象调用this.setState
,它会将对象映射到您当前的状态(控制台日志可能也无法工作,因为setState
是一个异步函数)
非常感谢。工作很好:)谢谢!作品很棒:)