課程
/前端開(kāi)發(fā)
/React.JS
/基于實(shí)例的 React16 傻瓜課程
添加了新的replay之后,怎樣把input里的內(nèi)容清空?
2018-09-18
源自:基于實(shí)例的 React16 傻瓜課程 4-2
正在回答
你寫(xiě)的很認(rèn)真。點(diǎn)贊! 有幾點(diǎn)可以改進(jìn),1 刪除的回調(diào)函數(shù)也許不需要傳入 e 這個(gè)event object,直接把 index 傳入豈不是更好? 2 在 deleteComment 方法中,你選用了 splice 來(lái)刪除,splice 是個(gè) mutable 的方法,當(dāng)然也沒(méi)問(wèn)題,也可以試試用 數(shù)組上面的 filter 方法,這個(gè)函數(shù)是 immtuable 的,而且更好理解。3 既然 clickHandler 里面只有一行,是不是可以試試直接用箭頭函數(shù)作為回調(diào)? 例如 onClick={(e)=> { .... }}
幕布斯3313121
清空操作可以試試在提交的時(shí)候進(jìn)行,也就是在handleSubmit()方法中,添加
this.textInput.value?=?''
emmmm......我覺(jué)得不用這樣的,加一個(gè)函數(shù)
componentDidUpdate(prevProps,?prevState,?snapshot)?{ ????document.getElementById('comment').value?=?"" }
qq_長(zhǎng)流_0
剛問(wèn)完發(fā)現(xiàn)是老師留的作業(yè)……那我就自問(wèn)自答一下吧:
在CommentBox.js里的handleSubmit里加上一句:?
this.textInput.value=""
即可
加刪除按鈕比較麻煩點(diǎn),CommentList.js文件中,把ul標(biāo)簽修改如下:
<ul?className="list-group?mb-3"> {???? ????this.props.comments.map((comment,?index)?=>???????? ????????<li?key={index}?className="list-group-item">{comment} ????????<button ????????????type="button" ????????????className="btn?btn-danger?btn-sm" ????????????data-index={index} ????????????onClick={this.clickHandler} ?????????> ?????????刪除 ?????????</button> ?????????</li> ?????) } </ul>
同時(shí)加入clickHandler方法
clickHandler(e)?{ ????this.props.onDeleteComment(e) }
最后,在App.js里,首先把CommentList標(biāo)簽加入onDeleteComment屬性
<CommentList?comments={comments}?onDeleteComment={this.deleteComment}?/>
再加入deleteComment方法:
deleteComment(e)?{ ????const?index?=?e.target.getAttribute("data-index"); ????let?newComments?=?this.state.comments ????newComments.splice(index,?1) ????this.setState({ ????????comments:?newComments ????}) }
我在刪除按鈕上加了一個(gè)data-index屬性用來(lái)傳遞comment的index,不確定好不好,也不知道有沒(méi)有更好的方法。歡迎大家討論,也請(qǐng)老師指點(diǎn)。
pardon110
慕運(yùn)維6548256
舉報(bào)
通過(guò)一系列簡(jiǎn)單有趣的例子,讓你了解 React16 的基本概念和新特性
1 回答非受控組件的input,如何清空???
5 回答添加刪除按鈕以及清空某條評(píng)論的實(shí)現(xiàn)
2 回答按照視頻上按照視頻上的內(nèi)容,打出來(lái)的代碼不會(huì)加一,方法已經(jīng)觸發(fā)的。
2 回答怎么把commentLists中的index傳遞到APP.js中
1 回答在 onClick 后面添加 this.increaseLikes(), 會(huì)自動(dòng)觸發(fā)點(diǎn)擊效果是為什么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-09-18
你寫(xiě)的很認(rèn)真。點(diǎn)贊! 有幾點(diǎn)可以改進(jìn),1 刪除的回調(diào)函數(shù)也許不需要傳入 e 這個(gè)event object,直接把 index 傳入豈不是更好? 2 在 deleteComment 方法中,你選用了 splice 來(lái)刪除,splice 是個(gè) mutable 的方法,當(dāng)然也沒(méi)問(wèn)題,也可以試試用 數(shù)組上面的 filter 方法,這個(gè)函數(shù)是 immtuable 的,而且更好理解。3 既然 clickHandler 里面只有一行,是不是可以試試直接用箭頭函數(shù)作為回調(diào)? 例如 onClick={(e)=> { .... }}
2018-12-06
清空操作可以試試在提交的時(shí)候進(jìn)行,也就是在handleSubmit()方法中,添加
2018-12-04
emmmm......我覺(jué)得不用這樣的,加一個(gè)函數(shù)
2018-09-18
剛問(wèn)完發(fā)現(xiàn)是老師留的作業(yè)……那我就自問(wèn)自答一下吧:
在CommentBox.js里的handleSubmit里加上一句:?
即可
加刪除按鈕比較麻煩點(diǎn),CommentList.js文件中,把ul標(biāo)簽修改如下:
同時(shí)加入clickHandler方法
最后,在App.js里,首先把CommentList標(biāo)簽加入onDeleteComment屬性
再加入deleteComment方法:
我在刪除按鈕上加了一個(gè)data-index屬性用來(lái)傳遞comment的index,不確定好不好,也不知道有沒(méi)有更好的方法。歡迎大家討論,也請(qǐng)老師指點(diǎn)。