如何导入和调用使用redux connect及其函数的纯函数? (仅React功能组件没有类)

问题描述 投票:0回答:1

假设我在One.js中有一个名为SignIn()的react pure函数:

import React from 'react';
import PropTypes from 'prop-types';
import {connect} from 'react-redux';
import {GoogleSignin, statusCodes} from '@react-native-community/google-signin';
import {getToken, saveToken} from '../actions/token';

const SignIn = async ({token, getToken, saveToken}) => {
  const savedToken = await getToken();
  console.log(token.loading, savedToken);

  SignIn.propTypes = {
    token: PropTypes.string.isRequired,
    getToken: PropTypes.func.isRequired,
    saveToken: PropTypes.func.isRequired,
  };
};

const mapStateToProps = state => {
  console.log('state : ', state);
  return {
    token: state.token,
  };
};

export default connect(mapStateToProps, {saveToken, getToken})(SignIn);


[我想在另一个Two.js反应文件中使用此SignIn()函数,以便将Redux函数和其他函数getToken()在文件One.js中调用,然后可以在文件Two中使用这些函数。 js,但问题是由于redux connect,我无法导出和使用它们。如何在Two.js文件中导入和使用这种功能?

reactjs react-native redux react-redux redux-thunk
1个回答
0
投票

connect函数只能用呈现实际jsx的react组件来实现,并且要使其正常工作,您需要返回jsx elementsnull并像这样<SignIn />进行调用。您想使用redux来实现一些逻辑,您可以制作一个custom hook,在其中实现useSelectoruseDispatch,然后将return您想要的数据或仅在effect中执行他们,什么也不返回。

希望这会有所帮助。

这是react-redux文档https://react-redux.js.org/api/hooks#usedispatch中的示例>

© www.soinside.com 2019 - 2024. All rights reserved.