状态机的 Hook(React)

和路由一样,函数组件中使用状态机也可以按照之前类组件的语法:

import { connect } from 'react-redux'
function TodoList(props) {
    const { todos } = props;
    return (
        <></>
    )
}
const mapStateToProps = state => {
    return {
        todos: state.todoList.todos
    }
}
export default connect()(TodoList)

第三方的 Hook

但是,react-redux 插件也给函数组件提供了第三方的 Hook,来实现组件对 redux 的操作:

import { useSelector, useDispatch } from 'react-redux';
export default function TodoList(props) {
    const todos = useSelector((state) => {
        return state.todoList.todos
    })
    const dispatch = useDispatch();
    return (
        <>
            <button onClick={() => dispatch({ type: 'addTodo' })}>新增</button>
            <ul>
                {
                    todos.map(item => <li key={item.id}>{item.value}</li>)
                }
            </ul>
        </>
    )
}

说明:

useSelector():调用该方法时传递一个函数作为参数,可以获取到仓库中的数据;
useDispatch():调用该方法可以获取到 dispatch 方法;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值