我是一个全新的react 者,我正在努力将我的思维从标准js转换过来.

在react组件中,我有以下元素:

<div className='base-state' onClick={this.handleClick}>click here</div>

我正在寻找的行为是在单击时添加一个额外的类.我的第一个 idea 是try 在click handler函数中添加类,例如.

handleClick : function(e) {
   <add class "click-state" here>
}

我还没有找到任何类似的例子,所以我很确定我没有正确地思考这个问题.

谁能给我指出正确的方向吗?

推荐答案

类列表可以从组件的状态派生.例如:

var Component = React.createClass({
  getInitialState: function() {
    return {
      clicked: false
    };
  },

  handleClick: function() {
    this.setState({clicked: true});
  },

  render: function() {
    var className = this.state.clicked ? 'click-state' : 'base-state';
    return <div className={className} onClick={this.handleClick}>click here</div>;
  }
});

调用this.setState将触发组件的重新加载.

Reactjs相关问答推荐

Shadck/ui Select -当用户 Select 项目时更改状态

FireBase未与Reaction应用程序连接

在Reaction中单击并显示子组件延迟/动画

在每页上应用字体-NextJS

根据用户 Select 的注册类型更改表单字段

状态更改是否卸载功能组件

为什么react日历时间轴项Renderprops 不能与useState挂钩一起使用?

ctx.strokeStyle 在 canvas html 5 中不起作用

从 React 应用程序调用未经身份验证的 graphql 查询时出现错误:没有当前用户

React 测试库包装器组件

React v6 中的公共和私有路由

表单错误后 Ionic React 无法 Select 单选按钮

React:如何设置光标 Select

Reactjs 表单未反映提交时的更改

更新和删除功能不工作 Asp.net MVC React

当父组件重新渲染时做出react ,我失go 了子状态.我错过了什么?

如何在 Reactjs 中判断受保护路由上的用户角色?

为什么重新渲染不会影响 setTimeout 的计数?

将 set statehook 函数传递给子路由组件.解构错误

在 redux 状态更改时更新react 按钮禁用状态