Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何迭代异步返回的对象并在react.js中显示它?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何迭代异步返回的对象并在react.js中显示它?

Javascript 如何迭代异步返回的对象并在react.js中显示它?,javascript,reactjs,Javascript,Reactjs,我在显示函数调用wait toxica toxica语句的结果时遇到问题。我能得到的最接近的结果是在react插件的组件状态下看到这个更新,但是它没有更新组件本身 function ToxicLabels(theObject) { return ( <h2>{theObject.label} match {theObject.results[0].match}</h2> ) } class App extends React.Component { c

我在显示函数调用wait toxica toxica语句的结果时遇到问题。我能得到的最接近的结果是在react插件的组件状态下看到这个更新,但是它没有更新组件本身

function ToxicLabels(theObject) {
  return (
  <h2>{theObject.label}  match {theObject.results[0].match}</h2>
  )
}

class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      objects: [],
    }
  }

  componentDidMount() {
    this.renderThePost()
  }
  componentDidUpdate(){
    render()
  }

  renderThePost = async () => {
    try {
      let response = await toxic('you suck')
      this.setState({
        object: response,
      })
      // this.state.object.map((object)=>{
      //   console.log(object)
      //   ToxicLabels(object)
      // })
      }catch (err) {
        console.log(err)
      }
    }

  render() {
      return (
        <div>
          <h2>Hello {"Hola"}</h2>
          {this.state.object.map((object)=> {
            console.log(object)
            ToxicLabels(object)
            })}
        </div>
      )
    }
  }
这是可行的

这是我的国家{ 对象:response.object, } ... {this.state.objects.mapobject=>ToxicLabelsobject} 这是可行的

这是我的国家{ 对象:response.object, } ... {this.state.objects.mapobject=>ToxicLabelsobject}
这段代码从我这里起作用,只需排除有毒函数并使用您自己的

import React from "react"

const toxic = () => {
    return {
  "object": [
    {
      "label": "identity_attack",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "insult",
      "results": [
        "{match: true, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "obscene",
      "results": [
        "{match: null, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "severe_toxicity",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "sexual_explicit",
      "results": [
        "{match: null, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "threat",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "toxicity",
      "results": [
        "{match: true, probabilities: Float32Array(2)}"
      ]
    }
  ]
}

}

function ToxicLabels(theObject) {
  return (
  <h2>{theObject.label}  match {theObject.results[0].match}</h2>
  )
}

export default class App extends React.Component {
  constructor() {
    super()
    this.state = {
      render: false, 
      objects: [],
    }
  }

  componentDidMount() {
    this.renderThePost()
  }
  componentDidUpdate(){
    this.render()
  }

  renderThePost = async () => {
    try {
      let response = await toxic('you suck')
      console.log( response )
      this.setState({
        objects: response.object,
        render: true
      })
      // this.state.object.map((object)=>{
      //   console.log(object)
      //   ToxicLabels(object)
      // })
      }catch (err) {
        console.log(err)
      }
    }

  render() {
      if( !this.state.render ) { return <div></div> }
      return (
        <div>
          <h2>Hello {"Hola"}</h2>
          {this.state.objects.map((object) => {
            
            return ToxicLabels(object)
            })}
        </div>
      )
    }
  }

这段代码从我这里起作用,只需排除有毒函数并使用您自己的

import React from "react"

const toxic = () => {
    return {
  "object": [
    {
      "label": "identity_attack",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "insult",
      "results": [
        "{match: true, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "obscene",
      "results": [
        "{match: null, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "severe_toxicity",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "sexual_explicit",
      "results": [
        "{match: null, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "threat",
      "results": [
        "{match: false, probabilities: Float32Array(2)}"
      ]
    },
    {
      "label": "toxicity",
      "results": [
        "{match: true, probabilities: Float32Array(2)}"
      ]
    }
  ]
}

}

function ToxicLabels(theObject) {
  return (
  <h2>{theObject.label}  match {theObject.results[0].match}</h2>
  )
}

export default class App extends React.Component {
  constructor() {
    super()
    this.state = {
      render: false, 
      objects: [],
    }
  }

  componentDidMount() {
    this.renderThePost()
  }
  componentDidUpdate(){
    this.render()
  }

  renderThePost = async () => {
    try {
      let response = await toxic('you suck')
      console.log( response )
      this.setState({
        objects: response.object,
        render: true
      })
      // this.state.object.map((object)=>{
      //   console.log(object)
      //   ToxicLabels(object)
      // })
      }catch (err) {
        console.log(err)
      }
    }

  render() {
      if( !this.state.render ) { return <div></div> }
      return (
        <div>
          <h2>Hello {"Hola"}</h2>
          {this.state.objects.map((object) => {
            
            return ToxicLabels(object)
            })}
        </div>
      )
    }
  }


不确定如何将其与react.js连接,因为异步调用的数据被传递到组件的状态,但是组件不更新。您可以映射数据。我确实映射了数据,但它不显示我传递了输出的组件。有毒代码在哪里?您能显示数据的结构吗返回?不确定如何将其与react.js连接,因为来自异步调用的数据被传递到组件的状态,但是组件不更新。您可以映射数据。我确实映射了数据,但它不显示我传递了输出的组件。有毒的代码在哪里?您可以显示返回的数据?控制台上的这个给了我对象:undefinedbecause response中有标签和数组请共享console.logresponse结果。很抱歉,在调用async后,我的代码在设置状态时出错。它是response.object,但在我删除后,它给了我列表为什么不?是的,你可以。控制台上的这个给了我对象:未定义,因为响应中有标签和数组。请共享控制台。logresponse结果。很抱歉,调用async后,我的代码在设置状态时出错。它是响应。对象,但在我删除后,它给了我列表为什么不?是的,你可以。如果我想从一个字段添加用户输入,我需要更改什么吗。我所需要做的就是将值作为道具传递给应用程序组件,对吗?是的,您肯定需要更改某些内容,但我不知道您是如何构建代码的。这听起来像是个新问题。我决不是一个专家,但我通常把应用程序作为我的顶级组件,并从那里把道具传给孩子们。哦,我明白了,我会这么做的,我还没有反应过来。但是,我们的想法是将值作为prop传递,然后运行异步函数,对吗?在这种情况下,实际上不需要这样做,但是如果您有在componentDidMount之前未定义的状态变量,则应用程序可能会崩溃。至于另一个问题,我对你正在尝试做的事情了解不够。那么,让你的表单在你呈现有毒标签并将其作为道具传递下去的级别之上,或者在获得用户输入后设置状态。但老实说,这与最初的问题有很大的偏离。祝你好运如果im要从字段中添加用户输入,是否需要更改任何内容。我所需要做的就是将值作为道具传递给应用程序组件,对吗?是的,您肯定需要更改某些内容,但我不知道您是如何构建代码的。这听起来像是个新问题。我决不是一个专家,但我通常把应用程序作为我的顶级组件,并从那里把道具传给孩子们。哦,我明白了,我会这么做的,我还没有反应过来。但是,我们的想法是将值作为prop传递,然后运行异步函数,对吗?在这种情况下,实际上不需要这样做,但是如果您有在componentDidMount之前未定义的状态变量,则应用程序可能会崩溃。至于另一个问题,我对你正在尝试做的事情了解不够。那么,让你的表单在你呈现有毒标签并将其作为道具传递下去的级别之上,或者在获得用户输入后设置状态。但老实说,这与最初的问题有很大的偏离。祝你好运