javascript - 如何正确调用reactjs渲染方法中的函数?

标签 javascript reactjs

我想从服务器获取数据并将其显示在表格中。当我直接将代码放入渲染中时,它就可以工作。但是,当我封装在 addElementsToDisplay 函数内并在渲染方法内调用该函数时,它不起作用。实际上,该函数被调用,但响应并未以表格格式呈现。下面是我的代码:

import React, { Component } from "react";
import ReactDOM from "react-dom";
import { Button } from 'semantic-ui-react';
import ResponseRenderer from './responseRenderer';
import "./App.css";

const responseDataContext = React.createContext({});



class App extends Component {
    constructor(props) {
    super(props);
    this.getPastJobs = this.getPastJobs.bind(this);
    this.addElementsToDisplay = this.addElementsToDisplay.bind(this);
    this.state = { pastJobs: [] }
  }

  render() {
    return (
      <div className="App">
        <Button onClick={this.getPastJobs}>Get Past Jobs</Button>
        <h1> Hello, World! </h1>
        {this.addElementsToDisplay()}
      </div>
    );
  }

  addElementsToDisplay() {
    console.log("state: ", JSON.stringify(this.state));
    this.state.pastJobs.map((value, index) => {
      return <ResponseRenderer key={Math.random()} data={value} />
    });
  }


  getPastJobs() {
    fetch('http://localhost:9090/getPastJobs', {
     method: 'POST',
      body: JSON.stringify({})
    })
      .then((response) => {
        if (response.status !== 200) {
          return;
        }
        response.json().then((jobs) => {
          console.log(jobs);
          this.setState({ pastJobs: jobs.data })
        });
      })
      .catch((err) => {
        console.log(err.message, err.stack);
      });
  }
}

export default App;

最佳答案

您没有返回响应,因此它不会呈现,只需返回映射的响应,它就会正常工作

addElementsToDisplay() {
    console.log("state: ", JSON.stringify(this.state));
    return this.state.pastJobs.map((value, index) => {
      return <ResponseRenderer key={Math.random()} data={value} />
    });
  }

关于javascript - 如何正确调用reactjs渲染方法中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50190102/

相关文章:

javascript - TypeScript 定义外部类

javascript - 向 SWR 发出请求时出现 typescript 问题

javascript - 如何在滚动时更改路线?

javascript - JS数组查找和替换?

javascript - 在 Javascript 中将 é 转换为其原始形式

javascript - 如何确保用户滚动并阅读使用条款?

javascript - Angular6:表单=如何选择我将发送哪些参数

javascript - 表单验证条件与 react

javascript - 未触发操作 - React-Redux 计数器示例

javascript - Flux 组件个人商店