Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 反应状态不更新?不会渲染卡片吗?后端很好!有人能弄明白吗?_Javascript_Reactjs_State - Fatal编程技术网

Javascript 反应状态不更新?不会渲染卡片吗?后端很好!有人能弄明白吗?

Javascript 反应状态不更新?不会渲染卡片吗?后端很好!有人能弄明白吗?,javascript,reactjs,state,Javascript,Reactjs,State,我遇到的问题是,如果有任何内容处于“内容”状态,我会尝试将这些卡片从Reddit发布到我的应用程序中 出于某种原因,后端是完全正常的,我让它在一个页面上下文中工作,但我无法进行渲染,当我点击搜索按钮时,即使我可以在任何地方记录内容数组,我也无法生成卡片,它说类型错误未定义。我怎样才能解决这个问题 我的API响应只是一个由25个大型JSON对象组成的数组。我正在使用snoowrap/axios。Mongo也会被扔到这里,但目前还没有使用。我能够在客户端操纵响应,但它似乎没有更新“内容”的状态。我

我遇到的问题是,如果有任何内容处于“内容”状态,我会尝试将这些卡片从Reddit发布到我的应用程序中

出于某种原因,后端是完全正常的,我让它在一个页面上下文中工作,但我无法进行渲染,当我点击搜索按钮时,即使我可以在任何地方记录内容数组,我也无法生成卡片,它说类型错误未定义。我怎样才能解决这个问题

我的API响应只是一个由25个大型JSON对象组成的数组。我正在使用snoowrap/axios。Mongo也会被扔到这里,但目前还没有使用。我能够在客户端操纵响应,但它似乎没有更新“内容”的状态。我可以在控制台中注销它,就好像它已经注销了一样,但它似乎正在尝试在拥有新状态或其他东西之前创建卡

条件渲染也可以工作!它可以告诉你this.state.content数组@this.state.content.length中没有任何内容,但是当它们到达那里时,出于某种原因,它们都是空的

我完全被难住了:/

第二次编辑:

这是我的API请求

import axios from 'axios';

export default {

  snooScrape: function (searchQuery) {
    return axios.get("/api/snoo/" + searchQuery).then(res => {
      let response = res.data
      return response

    })
  }
}
答复如下:

在前端:


我甚至可以成功地将这个.setState({content:subData})记录下来。这似乎是某种异步问题:/

我认为错误来自卡组件。请记录API响应并将其放在此处。

乍一看,您的页面似乎不应该抛出错误,因为您使用空数组初始化了
this.state.content


但是错误表明您的
this.state.content
的子项未定义。当您使用API回调更新状态时,出现了一些问题。请随API回复一起提供问题。

您需要对这个问题进行一些改进。一下子就太多了。你的搜索函数绑定到类了吗?不,我不相信我显式地绑定了它们。我只是在学习如何反应。我在上面的帖子中添加了更多信息!我把更多的信息发到了帖子上!卡片组件的代码以及我是如何导出的
import React from 'react'
import './Card.css'

export const Card = props => {
      return (
            <div className='post-card' id={this.props.isSaved}>

                  <p className='post-title'>{props.title}</p>

                  <p className='post-author'>{props.author}</p>
                  {props.children}
            </div>
      )
}
export {default} from "./Card.js"
import axios from 'axios';

export default {

  snooScrape: function (searchQuery) {
    return axios.get("/api/snoo/" + searchQuery).then(res => {
      let response = res.data
      return response

    })
  }
}