課程
/前端開發(fā)
/React.JS
/基于實例的 React16 傻瓜課程
沒有開始點擊時,控制臺就出現(xiàn)了一個警告,這個警告不影響加1效果,就是有警告,所以請教!
2018-11-01
源自:基于實例的 React16 傻瓜課程 3-2
正在回答
原因是這里:
++this.state.likes
因為++符號,會導致this.state.likes本身加一,這樣就相當于你嘗試不用setState命令直接操作this.state.likes的值了
前綴形式的++和--操作符。前綴形式的++和--操作符出現(xiàn)在操作數(shù)的前面,應(yīng)用了這種形式后,操作數(shù)本身會相應(yīng)的增加或減少。同時,表達式的值為操作數(shù)增加或減少后的值。用法如下所示:??var?i?=?1;??????//運行完這條語句,i被賦值為1 ??var?j?=?++i;????//運行完這條語句,i的值增了1變?yōu)?,而j的值為“++i”這個表達式的值為2 ??--j;????????????//運行完這條語句,j的值減了1變?yōu)?,表達式“--j”的值為1但被拋棄
前綴形式的++和--操作符。前綴形式的++和--操作符出現(xiàn)在操作數(shù)的前面,應(yīng)用了這種形式后,操作數(shù)本身會相應(yīng)的增加或減少。同時,表達式的值為操作數(shù)增加或減少后的值。用法如下所示:
??var?i?=?1;??????//運行完這條語句,i被賦值為1 ??var?j?=?++i;????//運行完這條語句,i的值增了1變?yōu)?,而j的值為“++i”這個表達式的值為2 ??--j;????????????//運行完這條語句,j的值減了1變?yōu)?,表達式“--j”的值為1但被拋棄
代碼如下:
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({
? ? ? ? ? ? // 設(shè)置當點贊 + 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
應(yīng)該是想改變屬性或?qū)ο鬀]有setState, 需要看代碼。
這位同學你先吧?components/likesButton.js 的代碼貼出來啊
黃健聰 提問者
舉報
通過一系列簡單有趣的例子,讓你了解 React16 的基本概念和新特性
1 回答在 onClick 后面添加 this.increaseLikes(), 會自動觸發(fā)點擊效果是為什么?
1 回答日志輸出與展示效果有差異
1 回答點擊贊,方法中的打印已經(jīng)有了,頁面狀態(tài)沒改變
2 回答console的12能定時打印,就是時間不變,為什么呢
1 回答這個代碼邏輯有些看不懂
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-11-01
原因是這里:
因為++符號,會導致this.state.likes本身加一,這樣就相當于你嘗試不用setState命令直接操作this.state.likes的值了
2018-11-01
2018-11-01
代碼如下:
2018-11-01
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({
? ? ? ? ? ? // 設(shè)置當點贊 + 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
2018-11-01
應(yīng)該是想改變屬性或?qū)ο鬀]有setState, 需要看代碼。
2018-11-01
這位同學你先吧?components/likesButton.js 的代碼貼出來啊