【问题标题】:how to display variable value in HTML tag in react如何在反应的HTML标签中显示变量值
【发布时间】:2022-01-01 13:51:11
【问题描述】:

我正在做 react 项目,我需要在 HTML 中显示书名

元素 我创建了使用 axios 从 mongo DB 获取书籍的 react 函数组件

    import React from 'react';
    import axios from 'axios';
    import { useState } from 'react';



    export default function Main1() {

    var [books,setData]=useState([]);// must be in react function component 
    var book="";
    

    // use axios get async function
    //-------------------------------------------------------------------------------------------- 
   --------------------
    const clicked= async () => {// async function started
        console.log('clicked');
        try {
          const response = await axios.get('http://localhost:5000/');// get response from server
         console.log(response.data);
         //books=response.data;// add data to array
        // bks=response.data;
        books=response.data;
         console.log(books);

        } catch (err) {
          // Handle Error Here
          console.error(err);
        };

        book=books.find(book=>book.isbn===document.getElementById("p2").innerText);
        console.log(book._id);

        try {
            const responseB = await axios.get('http://localhost:5000/'+book._id);// get response 
    from server
           console.log(responseB.data);
           //books=response.data;// add data to array
          // bks=response.data;
         book=responseB.data;
  
          } catch (err) {
            // Handle Error Here
            console.error(err);
          };

          document.getElementById("p1").innerText=book;



       // console.log(book.title);
       // document.getElementById("p1").innerText=book.title;

       // let bk=bks.find(isbn='20');

        //console.log(bk.title);
        


        //document.getElementById('p1').innerText=books[0].title;


    };

  
        
    // use axios get async function
    //-------------------------------------------------------------------------------------------- 
    --------------------
 



    
    return (
        <div>
           <button  onClick={clicked}>
                    hi
                </button>
                <p id='p2'> 
                    20
                    
                    
                </p>  
                <p>
                   {book} 
                </p>
        </div>
    )
    };

当我按下按钮时的问题,我在控制台日志中正确显示了 book 变量,但它无法在下面显示

标签

{书}

【问题讨论】:

  • setData(data.response) 而不是books = response.data
  • 我尝试了这段代码,但是当我尝试 console.log(books) 时,它给了我空对象 []
  • 欢迎来到 SO!请阅读How do I ask a good question ?
  • 好的,非常感谢

标签: reactjs mern


【解决方案1】:

你需要重新设置状态。

示例

export default function Main1() {

    const [books,setData]=useState(['']);// must be in react function component 
    /* var book=""; You can set on usestate as empty string*/  

const clicked= async () => {// async function started
        console.log('clicked');
        try {
          const response = await axios.get('http://localhost:5000/');// get response from server
         console.log(response.data);
         //console.log(books); // removing it will give you empty object because you are not assigning anything variable
         setData(response.data); // set the variable that you get

        } catch (err) {
          // Handle Error Here
          console.error(err);
        };

【讨论】:

  • 我尝试了这段代码,但是当我尝试 console.log(books) 时它给了我空对象
  • @Ali 你的服务器响应正确吗?你需要检查你的后端为什么它仍然给你空对象。
  • 是的,当我使用 console.log(books) 时它会响应它会在浏览器控制台中显示数组
猜你喜欢
  • 2023-01-10
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2023-01-24
  • 2016-10-18
相关资源
最近更新 更多