关于react中setState后,没有立即获取到最新的state中的值

searchRecomon (item) {
    this.setState({
      searchVal: item,
      searchCategoryId: 0,
      sortType: 1,
      priceSortStatus: 0
    })
    console.log(item)
    console.log(this.state.searchVal)
  }
 /*查询商品*/
  async searchGoods () {
    const {searchVal, sortType, page, size, priceSortStatus, searchCategoryId} = this.state
    const {data, filterCategory} = await http.getGoodsData({
      keyword: searchVal,
      page,
      size,
      sort: sortType === 1 ? 'id': 'price',
      order: priceSortStatus > 0 ? 'asc': priceSortStatus === 0 ? 'default' : 'desc',
      categoryId: searchCategoryId
    })
    this.setState({goodsList: data,searchKeyWordList: [], searchCategoryList: filterCategory})
    this.getInitData()
在searchGoods方法里面并没有直接获取到最新的searchVal的值。解决方法:
 searchRecomon (item) {
    this.setState({
      searchVal: item,
      searchCategoryId: 0,
      sortType: 1,
      priceSortStatus: 0
    }, () => {
      this.searchGoods()
    })
    console.log(item)
    console.log(this.state.searchVal)
  }
在setState值后,里面传个回调函数作为参数

2、理解setState

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,157评论 1 32
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,984评论 0 15
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,673评论 0 5
  • 说在前面 关于 react 的总结过去半年就一直碎碎念着要搞起来,各(wo)种(tai)原(lan)因(le)。心...
    陈嘻嘻啊阅读 6,923评论 7 41
  • 感恩格西老师善巧的将智慧传播给大家!祈愿每个人都能遇到善知识! 感恩姚老师用心录制的音频,让我有机会学习更多精彩智...
    椿芽儿香阅读 174评论 0 2