react如何向數(shù)組中追加值
react向數(shù)組中追加值
首先,渲染一個隨機數(shù),每個一秒變換一次,效果如下:
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>數(shù)組追加元素</title> <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script> <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script> <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script> </head> <body> <div id="xpf"></div> <script type="text/babel"> class Xpf extends React.Component { constructor(props){ super(props); this.state = { random:Math.random() } } componentWillMount(){ setInterval(() => { this.setState({ random:Math.random() }) }, 1000); } render() { let {random} = this.state; return ( <div> <div> {random} </div> </div> ); } } ReactDOM.render( <Xpf />, document.getElementById('xpf') ); </script> </body> </html>
注意:組件更新有兩種方式:props或state的改變,而改變state一般是通過setState()方法來的,只有當(dāng)state或props改變,render()方法才能再次調(diào)用,即組件更新
將生成的隨機數(shù)放入一個數(shù)組,效果如下:
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>數(shù)組追加元素</title> <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script> <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script> <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script> </head> <body> <div id="xpf"></div> <script type="text/babel"> class Xpf extends React.Component { constructor(props){ super(props); this.state = { random:Math.random(), arr:[1,2,3] } } componentWillMount(){ setInterval(() => { this.setState({ random:Math.random(), arr:[...this.state.arr,Math.random()] }) }, 1000); } render() { let {random,arr} = this.state; return ( <div> <div> {random} </div> <ul> { arr.map((item,index)=>{ return ( <li key={index}>{item}</li>) }) } </ul> </div> ); } } ReactDOM.render( <Xpf />, document.getElementById('xpf') ); </script> </body> </html>
使用...this.state.arr將arr解構(gòu)出來,在將隨機數(shù)加進去
注意:不能使用 arr : this.state.arr.push(Math.random()),不能使用在原數(shù)組的基礎(chǔ)上修改的方法,例如push之類,可以使用concat方法或者ES6數(shù)組拓展語法
react處理數(shù)組的值
1. 追加數(shù)組的值
通過…運算符把數(shù)組之前的值拆分,再在后面追加值
this.state = { ? arr: [] } add(){ ? this.setState((prevSatet) => ({ ? ? arr: [...prevSatet.arr, [追加的值] ] ? })) }
2. 刪除下標(biāo)為index的值
把state中arr的值拷貝到新的arr中,刪除新arr下標(biāo)為index的值后,再重新賦值回arr
主要不要直接刪除state中arr的值,然后賦值回去,這樣違反immutable的規(guī)則
this.state = { ? arr: [] } delete(index){? ? this.setState((prevState) => { ? ? const arr = [...prevState.list] ? ? arr.splice(index, 1) ? ? return { arr } ? }) }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ReactRouterV6如何獲取當(dāng)前路由參數(shù)
這篇文章主要介紹了ReactRouterV6如何獲取當(dāng)前路由參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03詳解如何在項目中使用jest測試react native組件
本篇文章主要介紹了詳解如何在項目中使用jest測試react native組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02react-router browserHistory刷新頁面404問題解決方法
本篇文章主要介紹了react-router browserHistory刷新頁面404問題解決方法,非常具有實用價值,需要的朋友可以參考下2017-12-12詳解一個基于react+webpack的多頁面應(yīng)用配置
這篇文章主要介紹了詳解一個基于react+webpack的多頁面應(yīng)用配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01React useMemo與useCallabck有什么區(qū)別
useCallback和useMemo是一樣的東西,只是入?yún)⒂兴煌瑄seCallback緩存的是回調(diào)函數(shù),如果依賴項沒有更新,就會使用緩存的回調(diào)函數(shù);useMemo緩存的是回調(diào)函數(shù)的return,如果依賴項沒有更新,就會使用緩存的return2022-12-12