javascript - 关于react的一段代码,比较少见没见过这种用法
迷茫
迷茫 2017-04-11 10:17:27
[JavaScript讨论组]

代码如下:

import React, { Component } from 'react';

class Counter extends Component {
  state = { value: 0 };

  increment = () => {
    this.setState(prevState => ({
      value: prevState.value + 1
    }));
  };

  decrement = () => {
    this.setState(prevState => ({
      value: prevState.value - 1
    }));
  };

  render() {
    return (
      <p>
        {this.state.value}
        <button onClick={this.increment}>+</button>
        <button onClick={this.decrement}>-</button>
      </p>
    )
  }
}

主要是如下代码:不明白什么意思啊,文档上说this.setState()有回调函数,但是也米见过这种用法啊,这是什么鬼啊

  increment = () => {
    this.setState(prevState => ({
      value: prevState.value + 1
    }));
  };

小弟刚刚自学react万望大家给解释一下,谢谢啦

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
ringa_lee

文档写的一清二楚
https://facebook.github.io/re...

ringa_lee

这个是es语法,可以先去看一下es2015基本语法

increment = () => {
    this.setState(prevState => ({
      value: prevState.value + 1
    }));
  };

相当于

increment = function () {
    this.setState(function(prevState){
        return { value: prevState.value + 1 };
    });
}
阿神

es6语法
increment = 这个函数

而里面的就是函数索要执行的,你这里就是执行this.setState()这个方法

在里面就是一个funtion ,参数为prevState 返回的结果就是一个object {value:prevState.value+1}

调用的话只需要
increment()
就可以更改state这个值了,然后页面就会从新刷新一次,会非常的快,因为react用的是虚拟dom,效率十分高

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号