javascript - ReactJs onClick 添加类名

标签 javascript reactjs onclick classname

我是reactjs新手。

所以我有一个问题。当我触发 onClick 事件时,我的 className 不会更新。是什么可能导致这个问题?

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>
    );
}
}

最佳答案

似乎是一个小错字:

this.setState = ({categorie: "newClass"});

应该是:

this.setState({categorie: "newClass"});

此外,setState() 是异步的,因此如果您确实想在 new 之后执行某些操作,那么紧随其后的 console.log 语句可能不会显示实际的新状态状态已设置,您应该给它一个回调函数作为第二个参数。

this.setState({categorie: "newClass"}, () => console.log(this.state.categorie));

关于javascript - ReactJs onClick 添加类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976033/

相关文章:

javascript - 如何将这个 moment.js 代码从 node.js 运行到 angular.js Controller ?

javascript - 在新选项卡中打开链接的对话框

javascript - 我应该用 useCallback 或 useMemo 包装每个 prop,什么时候使用这个钩子(Hook)?

android - 在gridview中设置某些项目不可点击

jquery - Bootstrap 4 Modal和jquery点击事件

javascript - Google Visualization 表格图表单击并返回行/列值在 Mozilla 浏览器中不起作用

javascript - IE9 的浏览器模式是否降至 IE7,这是否意味着 Javascript 版本不同

javascript - 优化 React 应用程序 - 仅根据 React [React.JS]

reactjs - org-reveal 标题幻灯片的自定义

jquery - 点击其他图片后如何获取图片src