Javascript 在使用基于类的组件进行react时,是否有一种使用react redux(useDispatch)的方法?我正在使用useDispatch内部渲染函数
错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一:Javascript 在使用基于类的组件进行react时,是否有一种使用react redux(useDispatch)的方法?我正在使用useDispatch内部渲染函数,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一: React和渲染器的版本可能不匹配(例如React DOM) 你可能违反了钩子的规则 同一应用程序中可能有多个React副本 挂钩仅用于功能部件中。根据客户要求,他们可以从 反应功能组件 定制挂钩 为了回答其他问题 在使用基于类的组件进行react时,是否有一种使用react redux(useDispatch)的方法 是的,有几种方法可以在基于类的组件中使用react-redux。使用react redux
挂钩仅用于功能部件中。根据客户要求,他们可以从
- 反应功能组件
- 定制挂钩
react redux
库提供的API,该库将动作创建者注入类组件。通过this.props
最终访问所需的dispatch
功能。您可以查看如何使用它的基本示例
希望这能有所帮助。挂钩仅用于功能组件。根据客户要求,他们可以从
- 反应功能组件
- 定制挂钩
react redux
库提供的API,该库将动作创建者注入类组件。通过this.props
最终访问所需的dispatch
功能。您可以查看如何使用它的基本示例
希望这有帮助。您不能将钩子与类组件一起使用。如中所述,您需要创建一个传递操作的容器/包装器组件 为此,您必须使用“react redux”中的
connect
,如下所示:
import { connect } from 'react-redux'
const mapDispatchToProps = dispatch => {
return {
onTodoClick: id => {
dispatch(toggleTodo(id))
}
}
}
const VisibleTodoList = connect(mapStateToProps (HERE NOT NEEDED; IF YOU WANT TO DISPATCH ONLY), mapDispatchToProps)(TodoList)
export default VisibleTodoList
这将通过道具将
onTodoClick
传递给组件,您可以像调用任何道具一样调用它:This.props.onTodoClick()
您不能对类组件使用钩子。如中所述,您需要创建一个传递操作的容器/包装器组件
为此,您必须使用“react redux”中的connect
,如下所示:
import { connect } from 'react-redux'
const mapDispatchToProps = dispatch => {
return {
onTodoClick: id => {
dispatch(toggleTodo(id))
}
}
}
const VisibleTodoList = connect(mapStateToProps (HERE NOT NEEDED; IF YOU WANT TO DISPATCH ONLY), mapDispatchToProps)(TodoList)
export default VisibleTodoList
这将通过道具将onTodoClick
传递给组件,您可以像任何道具一样调用它:This.props.onTodoClick()