Reactjs 对象(…)不是函数

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

我通过一些教程学习redux。这里我得到一个错误

对象(…)不是函数

在这一行

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的教程,如果您没有得到它,请随意提问。我将给出有关导入问题的答案。