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