簡體   English   中英

如何在react中添加帶有使用api獲取的參數的href鏈接?

[英]how to add href link with parameters fetched using api in react?

我有一個使用react的前端。 我想使用從 API 獲取的數據中提取的參數在地圖后添加一個鏈接到調查頁面。 我有兩個問題:

  • 我不知道如何將參數添加到鏈接中

  • 在函數映射后無法添加鏈接,它給出了錯誤。

這是我的代碼:

    export default function Dashboard() {
    const [students, setstudents] = useState([]);
     useEffect(() => {
     const fetchStudents = async () => {
     try {
    const resp = await Axios({
      method: "GET",
      url: "http://localhost:3001//student/courses",
      headers: {
        "Content-Type": "application/json",
      },
    });
    setstudents(resp.data);
  } catch (err) {}
  };
  fetchStudents();
      }, []);
  const classes = useStyles();
  return (
  <GridContainer>
  <GridItem xs={12} sm={6} md={3}>
    <Card>
      <CardHeader color="warning" stats icon>
        <CardIcon color="warning">
          <Icon>content_copy</Icon>
        </CardIcon>
        <p className={classes.cardCategory}>Completed surveys</p>
        <h3 className={classes.cardTitle}>{students.toatl_voted}/{students.total_courses}</h3>
      </CardHeader>
    </Card>
  </GridItem>
  <GridItem xs={12} sm={12} md={12}>
    <Card>
      <CardHeader color="primary">
        <h4 className={classes.cardTitleWhite}>Available Surveys</h4>
        <p className={classes.cardCategoryWhite}>
          Here is the remaining courses surveys to submit
        </p>
      </CardHeader>
      <CardBody>
        <Table
          tableHeaderColor="primary"
          tableHead={["Course Code", "Course Name", "Survey Link"]}
          tableData={students && students.map((student) => [student.surveys.Course_code, 
          student.survey.Course_name])}


        //href link should be added here as follow api: url/student/course/:sectionId/:departmentId it must be clickeable


        />
      </CardBody>
    </Card>
  </GridItem>
   </GridContainer>
   );
     }

這個問題似乎缺少很多信息。 但我會建議以下作為解決這個問題的起點。 假設1: <Table />tableData丙接受React.ReactNode proptype。 任何 React UI 都應該能夠渲染一個基本的 ReactNode。 如果沒有,請選擇不同的<Table /> API。 以下示例中的 href 模板參數是模擬學生屬性。

...
const getTableData = students => {
    if(!Array.isArray(students) || !students.length){
        return null;
    }
    return students.map( student => [
        student.surveys.Course_code, 
        student.survey.Course_name,
        (<a href={`url/student/course/${student.sectionId}/${student.departmentId}`}>
             Department# {student.departmentId}
         </a>
        )
    ]);
};
<GridContainer>
    ...
    <Table
        tableData={getTableData(students)}
        tableHead={["Course Code", "Course Name", "Survey Link"]}
        tableHeaderColor="primary"
    />
    ...
</GridContainer>
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM