React 钩子、函数组件和 Redux

图马斯·托伊沃宁

React hooks 可以使用所有 React 特性,例如组件状态和生命周期方法,而无需类声明(只是函数组件)。这减少了样板文件、重复和协商使用容易出错的this关键字。此外,由于功能组合,它可以轻松地在不相关的组件之间隔离和共享公共状态管理逻辑。

然而,钩子并没有因为集中和可预测的状态容器的目的而取代 Redux。是否可以将 React 函数组件连接到 Redux,因为我想拥抱未来 React 的仅函数范式并仍然使用 Redux?

克拉兹科

回答你的问题:

是否可以将 React 函数组件连接到 Redux?

是的,有可能,没有区别。简单的例子:

import { useState } from "react";
import { connect } from "react-redux";

const Foo = ({ bar, handleOnClick }) => {
  const [foo, setFoo] = useState(true);

  return (
    <div onClick={handleOnClick}>
      {foo}
      <div>{bar}</div>
    </div>
  );
};

const mapStateToProps = state => ({
  bar: state.bar
});

const mapDispatchToProps = dispatch => ({
  handleOnClick() {
    dispatch({ type: "foo" });
  }
});

export const FooContainer = connect(
  mapStateToProps,
  mapDispatchToProps
)(Foo);

实际上,您可以在 Redux 文档中看到:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React组件的生命周期,状态和Redux

来自分类Dev

解耦React组件和Redux Connect

来自分类Dev

React + Redux:组件不更新

来自分类Dev

React,Redux和不可变

来自分类Dev

如果使用Redux和React-Redux,在React组件中不需要状态吗?

来自分类Dev

React Redux追加组件

来自分类Dev

InfiniteLoader和react-redux

来自分类Dev

React钩子:无法更新函数组件内部的状态

来自分类Dev

Redux是否与React和React本机相同?

来自分类Dev

将Redux存储中的对象数组渲染为React组件

来自分类Dev

Formik钩子“ useField”抛出错误,指出该组件不是React函数组件

来自分类Dev

如何在React函数组件(useState钩子)中访问ag-Grid API?

来自分类Dev

React,Redux和Firebase

来自分类Dev

为钩子设置React / Redux打字稿

来自分类Dev

React和Redux:用HTML标签包装React Map函数

来自分类Dev

React + Antd + Rollup组件库“错误:无效的钩子调用。只能在函数组件主体内部调用钩子”

来自分类Dev

React Redux useSelector和参数

来自分类Dev

React Redux onDeleteClick不是函数

来自分类Dev

如何用react钩子完全替换redux?

来自分类Dev

React Redux追加组件

来自分类Dev

React / Redux 组件重新渲染

来自分类Dev

React redux 不更新组件

来自分类Dev

React 和 Redux 架构问题

来自分类Dev

javascript react-redux 函数

来自分类Dev

React Redux 渲染连接组件

来自分类Dev

在 react redux 中调用嵌套组件上的函数

来自分类Dev

React、redux 和路由

来自分类Dev

如果没有 React 钩子和类组件而不是函数组件,这个 React 代码会是什么样子?

来自分类Dev

功能组件的 redux 钩子