我正在尝试找到一种方法来将这些代码转换为基于类的组件:
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
呢?
发布于 2021-07-08 01:50:31
我的第一个问题是,为什么要尝试将函数组件转换为类组件?通常,人们会尝试将类转换为函数:)
这就是说,具体回答你的问题:你不必自己调用bindActionCreators
- connect
会在内部调用:
import { increment, decrement, reset } from './counterActions'
const actionCreators = {
increment,
decrement,
reset,
}
export default connect(mapState, actionCreators)(Counter)
https://stackoverflow.com/questions/68286501
复制相似问题