react中如何使用定义数据并监听其值

 更新时间:2024年01月25日 08:40:13   作者:小何同学要加油  
这篇文章主要介绍了react中如何使用定义数据并监听其值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

react使用定义数据并监听其值

原因

定义了数据,搜索之后可以打印出来数据,但是会延迟得到搜索后的数据。

import * as React from 'react';
 export default function MobileList(props) {
 const [procDefId, setprocDefId] = useState('')//定义任务类别
  
     // 搜索任务类型时触发
    const changeRadio = (value) => {
        console.log(value)//这样可以得到搜索的值
        setprocDefId(value)//搜索后的内容,存入procDefId
    }
     const getMoblieList = () => {
      const obj={
          procDefId //但是会延迟,得到搜索的值
         }
         getTask(obj).then((res) => {//obj,得不到的值
        
          })
      }
        
}

解决

对定义的数据进行useEffect监听,或者还有一个办法是加入定时器setTimeOut进行延迟

import * as React from 'react';
import {  useEffect } from 'react';
 export default function MobileList(props) {
 const [procDefId, setprocDefId] = useState('')//定义任务类别
  useEffect(() => {
        getMoblieList()
    }, [procDefId])//只有监听procDefId变化时,才调用 getMoblieList函数
     // 搜索任务类型时触发
    const changeRadio = (value) => {
        setprocDefId(value)//搜索后的内容,存入procDefId
    }
     const getMoblieList = () => {
      const obj={
          procDefId //得到搜索的值
         }
         getTask(obj).then((res) => {//得到的值传入接口
          //对接口进行处理
          })
      }
        
}

react数据监听方式

监听组件传递的值:

 componentWillReceiveProps(newProps)
 {
     参数为给组件传递的参数
 } 

监听组件内部状态的变化:

componentDidUpdate(prevProps,prevState){
    参数分别为改变之前的数据状态对象
    if(prevState.属性名!=this.state.属性名)
    {
        ...
    }
}

代码示例:

    //组件接收新属性时调用
    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)
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • React+Spring实现跨域问题的完美解决方法

    React+Spring实现跨域问题的完美解决方法

    这篇文章主要介绍了React+Spring实现跨域问题的完美解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • 从零开始搭建一个react项目开发

    从零开始搭建一个react项目开发

    这篇文章主要介绍了从零开始搭建一个react项目开发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • React组件实例三大核心属性State props Refs详解

    React组件实例三大核心属性State props Refs详解

    组件实例的三大核心属性是:State、Props、Refs。类组件中这三大属性都存在。函数式组件中访问不到 this,也就不存在组件实例这种说法,但由于它的特殊性(函数可以接收参数),所以存在Props这种属性
    2022-12-12
  • React文字展开收起组件的实现示例

    React文字展开收起组件的实现示例

    本文主要介绍了React文字展开收起组件的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 最新版React Native环境搭建(亲测)

    最新版React Native环境搭建(亲测)

    这篇文章主要介绍了最新版React Native环境搭建,React Native的运行需要依赖原生Android和iOS环境,因此需要分别安装原生Android和iOS的开发环境,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 原生实现一个react-redux的代码示例

    原生实现一个react-redux的代码示例

    这篇文章主要介绍了原生实现一个react-redux的代码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • create-react-app中添加less支持的实现

    create-react-app中添加less支持的实现

    这篇文章主要介绍了react.js create-react-app中添加less支持的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • React Native使用百度Echarts显示图表的示例代码

    React Native使用百度Echarts显示图表的示例代码

    本篇文章主要介绍了React Native使用百度Echarts显示图表的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • React版本18.xx降低为17.xx的方法实现

    React版本18.xx降低为17.xx的方法实现

    由于现在react默认创建是18.xx版本,但是我们现在大多使用的还是17.xx或者更低的版本,于是要对react版本进行降级,本文主要介绍了React版本18.xx降低为17.xx的方法实现,感兴趣的可以了解一下
    2023-11-11
  • 在 React 中使用 Context API 实现跨组件通信的方法

    在 React 中使用 Context API 实现跨组件通信的方法

    在React中,ContextAPI是一个很有用的特性,可用于组件间的状态共享,它允许跨组件传递数据而无需通过每个组件手动传递props,本文给大家介绍在 React 中如何使用 Context API 来实现跨组件的通信,感兴趣的朋友一起看看吧
    2024-09-09

最新评论