收藏
回答

怎么解决赋值不上的问题?

从组件中获取到数据之后,要把id数据赋值给接口中的id,结果接口数据undefined?或者直接没赋值上,一直保持初始值不变。

部分代码如下:

const [Id, setId] = useState(34);
function showmodal(data1) {
        setId(data1.id)
        // setId(parseInt(data1.id))
        console.log('获取导航栏id', data1)
        console.log('Id', Id)
        console.log('data1.Id', data1.id)
        getArticleList()
    }
 const getArticleList = useCallback((passPage) => {
        return request({
            url: '/getArticleList',
            method: 'get',
            data: {
                type: 1,
                catalog_id: Id
            },
            // success: function () {
            //     articleDetails()
            // }
        })
    }, [page])


{
                (list && list.length > 0) ?
                    <ScrollView
                        className={styles.top}
                        // scrollY
                        // refresherEnabled
                        // refresherTriggered={refreshTriggered}
                        lowerThreshold={60}
                        bindscrolltolower={loadMore}
                        bindrefresherrefresh={() => {
                            // setRefreshTriggered(true)
                            init();
                        }}>
                        {
                            list.map((v, i) => {
                                return (
                                    <HelptitleItem key={i} {...v} showModal={() => { showmodal(v) }} id="helptitleItem" />
                                )
                            })
                        }
                    </ScrollView>
                    : null
            }


运行截图:

回答关注问题邀请回答
收藏

2 个回答

  • ⅴ
    2022-11-16

    试试showModal这样写

    const showModal= (data1) => {
    
      new Promise((resolve) => {
    
        setId((data1.id) => {
    
          resolve(data1.id);
    
          return data1.id;
    
        });
    
      }).then(res => {
    
          getArticleList()
    
      });
    };
    
    2022-11-16
    有用
    回复 3
    • 啵啵
      啵啵
      2022-11-16
      这样写有错误
      2022-11-16
      回复
    • ⅴ
      2022-11-16回复啵啵
      emmm,你这里没有 .then的写法嘛。。大概就是getArticleList要写再setId的回调里。。
      2022-11-16
      回复
    • 啵啵
      啵啵
      2022-11-16
      .then有的吧
      2022-11-16
      回复
  • 小黎
    小黎
    2022-11-16

    setId(data1.id)异步问题

    2022-11-16
    有用
    回复
登录 后发表内容