我是 Web 开发的新手,作为项目的一部分,我制作了一个 Django React Redux 应用程序。frontentd 有一个带有表单条目的组件 - 当提交表单时,该组件调用一个操作,该操作将 axios 请求发送到后端的 python twitter 爬虫脚本。该脚本返回一个包含字符串数组的响应(推文在数组内)。然后,我尝试将 response.data 中包含的数组作为有效负载分派给减速器。但是,我不断收到错误消息,说我发送的有效负载未定义。
这是被调用的python方法的返回语句——语料库是一个字符串数组。
return JsonResponse({"results:": corpus})
这是向 python 方法发送 GET 请求的操作的代码。然后它在 json 对象中返回字符串数组。
// GET_TWEETS - get list of tweets from hashtag search
export const getTweets = (hashtag) => dispatch => {
axios
.get('http://localhost:8000/twitter_search', {
params: {text: hashtag}
})
.then(res => {
console.log(res.data); //check if python method returns corpus of tweets
//const results = Array.from(res.data.results);
dispatch({
type: GET_TWEET,
payload: res.data.results
});
})
.catch(err => console.log(err));
}
控制台日志显示该对象已从 python 脚本成功返回。 控制台日志
这是我的减速器的代码。我希望我的操作包含字符串数组,然后将该字符串数组分配给状态中的“推文”,以便我可以将其返回给组件,然后从组件访问数组,然后显示 thisx 推文数组的内容前端
import { GET_TWEET } from '../actions/types';
const initialState = {
tweets: []
}
export default function(state = initialState, action) {
console.log(action.payload)
switch(action.type) {
case GET_TWEET:
return {
...state,
tweets: [...action.payload]
}
default:
return state;
}
}
另外,这是我想要接收字符串数组的组件的一些代码,我希望我已经正确设置了这部分:
export class Tweets extends Component {
static propTypes = {
tweets: PropTypes.array.isRequired,
getTweets: PropTypes.func.isRequired
}
...
const mapStateToProps = state => ({
tweets: state.TweetsReducer.tweets
});
export default connect(mapStateToProps, { getTweets })(Tweets);
这是我从控制台得到的错误。控制台记录操作的有效负载还显示其值未定义:未定义错误
我已经尝试解决这个问题好几天了,但我完全迷失了,我有预感解决这个问题很简单......