react中如何使用定義數(shù)據(jù)并監(jiān)聽(tīng)其值
react使用定義數(shù)據(jù)并監(jiān)聽(tīng)其值
原因
定義了數(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)聽(tīng),或者還有一個(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)聽(tīng)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)聽(tīng)方式
監(jiān)聽(tīng)組件傳遞的值:
componentWillReceiveProps(newProps)
{
參數(shù)為給組件傳遞的參數(shù)
} 監(jiān)聽(tīng)組件內(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ò)程,小編覺(jué)得挺不錯(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-04
Hello?React的組件化方式之React入門(mén)小案例演示
這篇文章主要介紹了Hello?React的組件化方式-React入門(mén)小案例,本文通過(guò)Hello?React的案例,?來(lái)體驗(yàn)一下React開(kāi)發(fā)模式,?以及jsx的語(yǔ)法,需要的朋友可以參考下2022-10-10

