Reactjs 对象(…)不是函数
我通过一些教程学习redux。这里我得到一个错误 对象(…)不是函数 在这一行Reactjs 对象(…)不是函数,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我通过一些教程学习redux。这里我得到一个错误 对象(…)不是函数 在这一行 export default connect(null, { fetchPosts } )(Posts); 以下容器的 import React, { Component } from 'react'; import { connect } from 'react' import axios from 'axios'; import { fetchPosts } from '../actions/postActio
export default connect(null, { fetchPosts } )(Posts);
以下容器的
import React, { Component } from 'react';
import { connect } from 'react'
import axios from 'axios';
import { fetchPosts } from '../actions/postActions.js';
class Posts extends Component {
componentWillMount() {
this.props.fetchPosts();
}
render() {
const postItems = this.state.posts.map(el => {
return (
<div key={el.id}>
<h3>{el.title} </h3>
<p>{el.body} </p>
</div>
)
})
return (
<div>
<h1> Posts </h1>
{postItems}
</div>
);
}
}
export default connect(null, { fetchPosts } )(Posts);
由于我不确定相关的代码是否相同,fetchPosts会将acton分派给以下reducer
import { FETCH_POST, NEW_POST } from '../actions/type.js'
const initialState = {
items: [],
item: {}
}
export default function(state = initialState, action) {
switch (action.type) {
case FETCH_POST:
return {
...state,
items: action.payload
}
default:
return state
}
}
稍后在rootreducer.js文件中使用combinereducer进行组合(然后将其导入到store.js,我们在其中创建store)
有人能告诉我我做错了什么以及如何修复吗?React没有命名的
连接
导出,它属于React redux
。因此,您应该这样导入它:
import { connect } from "react-redux";
React没有命名的
connect
导出,它属于React-redux
。因此,您应该这样导入它:
import { connect } from "react-redux";
您正在从react导入
connect
。它应该是react redux
。还有,你会用redux thunk之类的东西吗?@devserkan修复了它。另外,如果你能再回答一个与这篇文章相关的问题(因为我在接下来的90分钟内不能再问其他问题)。讲师如何做this.props.fetchPosts()
在componentDidMount中,即道具从父级传递到子级,我认为fetchPosts是一个子级?抱歉,我不理解您的问题。“道具”是从父级组件流向子级组件(单向)的属性,因为我们正在导入fetchPosts
它将恰好是一个子级?那么,讲师如何执行类似于类Posts扩展组件{componentWillMount(){this.props.fetchPosts();}
(参考connection.fetchPosts中共享的第一段代码,它不是一个孩子,而是一个动作创建者。实际上,它返回一个函数,通过这个函数,您正在调度一个动作。这就是为什么我询问redux thunk。因此,它不是一个普通的动作创建者,您需要类似redux thunk的东西。动作创建者调度一个动作此操作将通过相关的reducer进行,然后此reducer将更新您的状态。这是一个广泛的主题。请查看更多关于Redux的教程,如果您没有得到它,请随意提问。我将回答有关导入问题。您正在从react导入connect
。它应该是react Redux
。还有,你会使用redux thunk这样的工具吗?@devserkan修复了它。另外,如果你能回答与此帖子相关的一个问题(因为我在接下来的90分钟内不能再问其他问题)。讲师如何做这个.props.fetchPosts()
在componentDidMount中,即道具从父组件传递到子组件,我认为fetchPosts是子组件?对不起,我不理解您的问题。“道具”是从父组件传递到子组件的属性(单向),因为我们正在导入fetchPosts
它将恰好是一个孩子?那么讲师如何才能像这样执行类Posts扩展组件{componentWillMount(){this.props.fetchPosts();}
(参考connection.fetchPosts中共享的第一段代码,它不是一个孩子,而是一个动作创建者。实际上,它返回一个函数,通过这个函数,您正在调度一个动作。这就是为什么我询问redux thunk。因此,它不是一个普通的动作创建者,您需要类似redux thunk的东西。动作创建者调度一个动作此操作通过相关的reducer进行,然后此reducer更新您的状态。这是一个广泛的主题。请查看更多关于Redux的教程,如果您没有得到它,请随意提问。我将给出有关导入问题的答案。