gpt4 book ai didi

javascript - 在react-redux应用程序中显示reddit api的响应

转载 作者:行者123 更新时间:2023-12-03 05:18:21 24 4
gpt4 key购买 nike

我正在从react-redux应用程序调用reddit api。响应来自 reddit,包含所有数据。它返回 25 个帖子,其中我只能在前端显示一个。我相信这是因为它是一个嵌套数组。

任何人都可以看到我做错了什么吗?

Please see jsfiddle here.

import React from 'react';
import ReactDOM from 'react-dom';
import { createStore, combineReducers } from 'redux';
import { connect, Provider } from 'react-redux';
import axios from 'axios';


function addData(state = [], action) {
switch(action.type) {
case 'ADD_DATA':
var newState = state.concat([action.data]);
return newState
default:
return state;
}
return state;
}

const store = createStore(addData);

class App extends React.Component {

componentDidMount() {
axios.get('https://www.reddit.com/r/reactjs/.json').then(response => {
var response = response.data.data.children;
store.dispatch({
type: 'ADD_DATA',
data: response
});
console.log('Response Returned Now');
})
}

render() {
var list = this.props.data.map(function(item, i){
return (<li key={i}>{item[i].data.title}</li>)
})
return (
<ul>
{list}
</ul>
)
}
}

const mapStateToProps = function(store){
return {
data: store
}
}

const ConnectedApp = connect(mapStateToProps)(App);
ReactDOM.render(
<Provider store={store}>
<ConnectedApp />
</Provider>
, document.getElementById('app')
);

最佳答案

返回的response已经是一个数组了。在你的 reducer 中,当你这样做时 state.concat([action.data])它返回一个嵌套数组 [Array[25]]

使用state.concat(action.data)然后替换你的 var listthis.props.data.map(function(item, i) { return (<li key={i}>{item.data.title}</li>) })

关于javascript - 在react-redux应用程序中显示reddit api的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com