react中如何使用定義數(shù)據(jù)并監(jiān)聽其值
react使用定義數(shù)據(jù)并監(jiān)聽其值
原因
定義了數(shù)據(jù),搜索之后可以打印出來(lái)數(shù)據(jù),但是會(huì)延遲得到搜索后的數(shù)據(jù)。
import * as React from 'react'; export default function MobileList(props) { const [procDefId, setprocDefId] = useState('')//定義任務(wù)類別 // 搜索任務(wù)類型時(shí)觸發(fā) const changeRadio = (value) => { console.log(value)//這樣可以得到搜索的值 setprocDefId(value)//搜索后的內(nèi)容,存入procDefId } const getMoblieList = () => { const obj={ procDefId //但是會(huì)延遲,得到搜索的值 } getTask(obj).then((res) => {//obj,得不到的值 }) } }
解決
對(duì)定義的數(shù)據(jù)進(jìn)行useEffect
監(jiān)聽,或者還有一個(gè)辦法是加入定時(shí)器setTimeOut
進(jìn)行延遲
import * as React from 'react'; import { useEffect } from 'react'; export default function MobileList(props) { const [procDefId, setprocDefId] = useState('')//定義任務(wù)類別 useEffect(() => { getMoblieList() }, [procDefId])//只有監(jiān)聽procDefId變化時(shí),才調(diào)用 getMoblieList函數(shù) // 搜索任務(wù)類型時(shí)觸發(fā) const changeRadio = (value) => { setprocDefId(value)//搜索后的內(nèi)容,存入procDefId } const getMoblieList = () => { const obj={ procDefId //得到搜索的值 } getTask(obj).then((res) => {//得到的值傳入接口 //對(duì)接口進(jìn)行處理 }) } }
react數(shù)據(jù)監(jiān)聽方式
監(jiān)聽組件傳遞的值:
componentWillReceiveProps(newProps) { 參數(shù)為給組件傳遞的參數(shù) }
監(jiān)聽組件內(nèi)部狀態(tài)的變化:
componentDidUpdate(prevProps,prevState){ 參數(shù)分別為改變之前的數(shù)據(jù)狀態(tài)對(duì)象 if(prevState.屬性名!=this.state.屬性名) { ... } }
代碼示例:
//組件接收新屬性時(shí)調(diào)用 componentWillReceiveProps(newProps) { const {searchName}=this.props; this.setState({ loading:true }) setTimeout(()=>{ this.setState({ loading:false, users:[{url:'https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1906469856,4113625838&fm=26&gp=0.jpg','name':'jeff'},{url:'https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1906469856,4113625838&fm=26&gp=0.jpg',name:'jeff2'}] }) },2000) }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
React中的render何時(shí)執(zhí)行過(guò)程
這篇文章主要介紹了React中的render何時(shí)執(zhí)行過(guò)程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04詳解antd+react項(xiàng)目遷移vite的解決方案
這篇文章主要介紹了詳解antd+react項(xiàng)目遷移vite的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Hello?React的組件化方式之React入門小案例演示
這篇文章主要介紹了Hello?React的組件化方式-React入門小案例,本文通過(guò)Hello?React的案例,?來(lái)體驗(yàn)一下React開發(fā)模式,?以及jsx的語(yǔ)法,需要的朋友可以參考下2022-10-10