Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 能够在控制台中查看JSON,但不';不知道如何在视图中显示-React Redux_Javascript_Reactjs_Ecmascript 6_Redux_Axios - Fatal编程技术网

Javascript 能够在控制台中查看JSON,但不';不知道如何在视图中显示-React Redux

Javascript 能够在控制台中查看JSON,但不';不知道如何在视图中显示-React Redux,javascript,reactjs,ecmascript-6,redux,axios,Javascript,Reactjs,Ecmascript 6,Redux,Axios,我还在学习React Redux。我了解如何检索简单的JSON数组。但是,我不知道如何调用嵌套对象。我试图抓住标题,并在控制台中查看: 反对 资料
:
对象 资料
:
对象 资料
:
对象 之后
:
“t3_5t0hy2”
之前
:
无效的
儿童
:
数组[25] 0
:
对象 资料
:
对象 头衔
:
“我在构建的每个网站上使用的谷歌分析设置(由Philip Walton提供)” dataAction.js import axios from 'axios';

我还在学习React Redux。我了解如何检索简单的JSON数组。但是,我不知道如何调用嵌套对象。我试图抓住标题,并在控制台中查看:

  • 反对
    • 资料
:
对象
      • 资料
:
对象
        • 资料
:
对象
          • 之后
:
“t3_5t0hy2”
之前
:
无效的
儿童
:
数组[25]
            • 0
:
对象
              • 资料
:
对象
                • 头衔
:
“我在构建的每个网站上使用的谷歌分析设置(由Philip Walton提供)”
dataAction.js

import axios from 'axios';


export function fetchData(){
  return function(dispatch){
    axios.get("https://www.reddit.com/r/webdev/top/.json")
    .then((response) => {
      dispatch({ type: "FETCH_DATA_FULFILLED", payload: response.data})
    })
    .catch((err) => {
      dispatch({type: "FETCH_DATA_REJECTED", payload: err})
    })
  }
}

export function addData(id, text){
  return {
    type: 'ADD_DATA',
    payload:{
      id,
      title,
    },
  }
}

export function updateData(id, text){
  return {
    type: 'UPDATE_DATA',
    payload: {
      id,
      title,
    },
  }
}

export function deleteData(id){
  return {
    type: 'DELETE_DATA',
    payload: id
  }
}
Layout.js(组件)


当这个问题解决后,下一步将是迭代对象,我也不确定如何实现

当您发送payload:response.data时,您可以在对象结构中更进一步,并在payload中发送实际数据

一旦你发送了有效载荷,你就需要一个减速器来改变状态。按照本教程介绍如何创建减速器。


一旦状态被更新,代码就会从状态中读取值。一旦状态更改,React将自动更新或呈现,您可以编写逻辑。

当您发送有效负载:response.data时,您可以在对象结构中进一步,并在有效负载中发送实际数据

一旦你发送了有效载荷,你就需要一个减速器来改变状态。按照本教程介绍如何创建减速器。


一旦状态被更新,代码就会从状态中读取值。一旦状态更改,React将自动更新或渲染,您可以编写逻辑。

还原程序在哪里?添加还原程序在哪里?添加还原程序我已添加我的还原程序您必须使用createStore,您可以使用本教程更好地理解redux我已添加我的还原程序您必须使用您可以使用本教程更好地理解redux
import React from "react"
import { connect } from "react-redux"

import { fetchUser } from "../actions/userActions"
import { fetchPartner } from "../actions/projectActions"
import { fetchData } from "../actions/dataActions"

@connect((store) => {
  return {
    user: store.user.user,
    userFetched: store.user.fetched,
    partner: store.partner.partner,
    partnerFetched: store.partner.fetched,
    data: store.data.data
  };
})
export default class Layout extends React.Component {
  componentWillMount() {
    this.props.dispatch(fetchUser())
    this.props.dispatch(fetchPartner())
    this.props.dispatch(fetchData())
  }


  render() {
    const { user, partner, data } = this.props;



    //const mappedData = data.map(data => <li>{data.title}</li>)

    return <div>
      <h1>{user.name}{user.age}</h1>
      <h1>{partner.title}</h1>
      <ul>{data.title}</ul>
    </div>
  }
}
export default function reducer(state={
    data: {
      data: {}
    },
    fetching: false,
    fetched: false,
    error: null,
  }, action) {

    switch(action.type){
      case "FETCH_DATA":{
        return {...state, fetching:true}
      }
      case "FETCH_DATA_REJECTED":{
        return {...state, fetching: false, error: action.payload}
      }
      case "FETCH_DATA_FULFILLED":{
        return {...state, fetching: false, fetched: true, data: action.payload}
      }
      case "ADD_DATA":{
        return {...state, data: [...state.data, action.payload]}
      }
      case "UPDATE_DATA":{
        const { id, title } = action.payload
        const newData = [...state.data]
        const dataToUpdate = newData.findIndex(data => data.id === id)
        newData[dataToUpdate] = action.payload;

        return {...state, data: newData}
      }
      case "DELETE_DATA":{
        return {...state, data: state.data.filter(data => data.id !== action.payload)}
      }
    }
    return state
  }