为了账号安全,请及时绑定邮箱和手机立即绑定

没有开始点击时,控制台就出现了一个警告,这个警告不影响加1效果,就是有警告,所以请教!

没有开始点击时,控制台就出现了一个警告,这个警告不影响加1效果,就是有警告,所以请教!

https://img1.sycdn.imooc.com//5bda682c0001396518581080.jpg

正在回答

6 回答

原因是这里:

++this.state.likes

因为++符号,会导致this.state.likes本身加一,这样就相当于你尝试不用setState命令直接操作this.state.likes的值了

2 回复 有任何疑惑可以回复我~
  • 前缀形式的++和--操作符。前缀形式的++和--操作符出现在操作数的前面,应用了这种形式后,操作数本身会相应的增加或减少。同时,表达式的值为操作数增加或减少后的值。用法如下所示:

  var i = 1;      //运行完这条语句,i被赋值为1
  var j = ++i;    //运行完这条语句,i的值增了1变为2,而j的值为“++i”这个表达式的值为2
  --j;            //运行完这条语句,j的值减了1变为1,表达式“--j”的值为1但被抛弃


1 回复 有任何疑惑可以回复我~

代码如下:

https://img1.sycdn.imooc.com//5bdab075000150ae13880873.jpg

0 回复 有任何疑惑可以回复我~

import React from 'react'

class LikesButton extends React.Component {

    constructor(props) {

        super(props)

        this.state = {

            likes: 0

        }

       

        // this.increaseLikes = this.increaseLikes.bind(this)


    }

   

    increaseLikes() {

        // alert(1234)

        // console.log(this)        

        this.setState({

            // 设置当点赞 + 1

            likes: ++this.state.likes

        })

    }

    render() {

        return (

            <div className="likes-button-component">                

                <button type="button" className="btn btn-outline-primary btn-lg" onClick={() => { this.increaseLikes() }}>

                    赞{this.state.likes}

                </button>

            </div>

        )

    }

}

export default LikesButton


0 回复 有任何疑惑可以回复我~

应该是想改变属性或对象没有setState, 需要看代码。

0 回复 有任何疑惑可以回复我~

这位同学你先吧 components/likesButton.js 的代码贴出来啊

0 回复 有任何疑惑可以回复我~
#1

黄健聪 提问者

好的,谢谢,请指教! 代码如下:
2018-11-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

没有开始点击时,控制台就出现了一个警告,这个警告不影响加1效果,就是有警告,所以请教!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信