【问题标题】:how to pass a parameter from useEffect如何从 useEffect 传递参数
【发布时间】:2021-07-09 00:29:29
【问题描述】:

我正在努力从 useEffect 传递参数。 在下图的POST方法中,生成了一个ID(res.data._id),但是不知道怎么传给后面用到的下一个方法

    useEffect(() => {
        axios
            .post('/api/hist', {
                user,
                collId: `${id}`,
                answers
            })
            .then((res) => {
                console.log('id:', res.data._id)

            });
    }, []);

每次单击按钮时都会使用另一种方法

    const saveAnswer = (answer: string, isCorrect?: boolean) => async () => {
 

        axios
            .post('/api/answer', {
                isCorrect: isCorrect,
                flashcardId: answer
            })
            .then((res) => {
                console.log(res.data)
 
                });
    };

但是在这里我想使用之前生成的这个 ID 作为 histID :

            .post('/api/answer', {
                isCorrect: isCorrect,
                flashcardId: answer,
                histID: ???

            })

有人知道如何实现吗?

【问题讨论】:

  • id 变量在哪里声明并从哪里生成值?不能在其他功能中再次使用吗?

标签: node.js reactjs axios react-hooks


【解决方案1】:

我不确定我是否了解您想要做什么,但我正在努力帮助您。

import React,{useState,useEffect} from 'react'

 const App = () => {
 /**
 * I don't know where is your
 *  - user
 *  - answers
 *  - id
 */
 const [histID,setHistID] = useState(null);

 const getHistID = async () => {
  try {
   const {data} = await axios.post('/api/hist',{
     user,
     collId: `${id}`,
     answers
   })
   if(data){
     setHistID(data.id)
   }
  } catch (error) {
   console.log('getHistID', error);
  }
 };

 useEffect(() => {
  getHistID();
 },[])

 const saveAnswer = async (answer: string, isCorrect?: boolean) => {
  try {
   const {data} = await axios.post('/api/answer',{
     isCorrect: isCorrect,
     flashcardId: answer,
     histID,
   })
   console.log(data);
  } catch (error) {
   console.log('saveAnswer', error);
  }
 }

 return (
   // your render
 )
}

export default App

【讨论】:

    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2021-02-19
    • 2022-01-26
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多