在函数组件中使用react-redux

创建redux/hooks.ts文件

import {useSelector as useReduxSelector, TypedUseSelectorHook} from 'react-redux';
import { RootState } from './store';

export const useSelector: TypedUseSelectorHook<RootState> = useReduxSelector;

store.js文件

const store = createStore(languageReducer);

export type RootState = ReturnType<typeof store.getState>

在header.tsx文件中使用hook

import React from "react";
import { useSelector } from "../../redux/hooks";  //useSelector从store中连接state数据
import { useDispatch } from "react-redux";
import { changeLanguageActionCreator, addLanguageActionCreator} from '../../redux/language/languageActions';
import {useTranslation} from 'react-i18next';

export const Header : React.FC = ()=>{
    const language = useSelector((state) => state.language);
    const languageList = useSelector((state) => state.languageList);

    const { t} = useTranslation();
    const dispatch = useDispatch();

    const menuClickHander = (e)=>{
        
        if(e.key === 'new'){
            dispatch(addLanguageActionCreator('新语言', 'new_lang'));
        }else{
            dispatch(changeLanguageActionCreator(e.key));
        }
        
    }
    return <Menu onClick={menuClickHander}>
                {languageList.map(l => <Menu.Item key={l.code}>{l.name}</Menu.Item>)}

                        <Menu.Item key={'new'}>{t('header.add_new_language')}</Menu.Item>
           </Menu>
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值