发布
社区首页 >问答首页 >如果不使用“bindActionCreators”,如何在类组件中实现连接

如果不使用“bindActionCreators”,如何在类组件中实现连接
EN

Stack Overflow用户
提问于 2021-07-07 20:57:48
回答 1查看 13关注 0票数 0

我正在尝试找到一种方法来将这些代码转换为基于类的组件:

代码语言:javascript
代码运行次数:0
复制
import React, {useEffect} from 'react'
import { useSelector, useDispatch } from 'react-redux'
import { bindActionCreators } from 'redux'
import { addComments } from './state/actions/commentActions'


export default function App() {

    const state = useSelector((state) => state)
    const dispatch = useDispatch()

    const {commentData} = state

    console.log(commentData);

    const add = bindActionCreators(addComments, dispatch)


    useEffect(() =>{
        async function fetchData(){
            const data = await fetch('https://jsonplaceholder.typicode.com/comments?_limit=10').then(data => data.json())
            add(data)
        }

        fetchData()

    }, [])

    const carr = commentData.map(data => <h1>{data.body}</h1>)

    return (
        <div>
            {carr}
        </div>
    )
}

当我第一次学习redux时,我并没有使用基于类的组件,所以除了connect HOC,我不知道如何替换那些钩子,不幸的是,我已经把它们放在了不能使用的位置。那么如何在基于类的组件上实现bindActionCreators呢?

EN

回答 1

Stack Overflow用户

发布于 2021-07-08 01:50:31

我的第一个问题是,为什么要尝试将函数组件转换为类组件?通常,人们会尝试将类转换为函数:)

这就是说,具体回答你的问题:你不必自己调用bindActionCreators - connect会在内部调用:

https://react-redux.js.org/using-react-redux/connect-mapdispatch#defining-mapdispatchtoprops-as-an-object

代码语言:javascript
代码运行次数:0
复制
import { increment, decrement, reset } from './counterActions'

const actionCreators = {
  increment,
  decrement,
  reset,
}

export default connect(mapState, actionCreators)(Counter)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68286501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档