功能部件的mapStateToProps

时间:2018-10-17 14:49:42

标签: javascript reactjs redux

有没有类似于mapStateToProps的功能,以便我们可以将Redux状态连接到React中的功能组件?

从父组件传递状态作为道具是唯一的解决方法吗?

5 个答案:

答案 0 :(得分:9)

react-redux现在具有useSelector方法。对于采用钩子的功能组件而言,这是一种更为清洁的方法。参见:https://react-redux.js.org/next/api/hooks#useselector

答案 1 :(得分:7)

绝对可以将mapStateToProps与功能组件一起使用,就像对类组件一样。

function MyComponent({ propOne }) {
  return <p>{propOne}</p>
}

function mapStateToProps(state) {
  return { propOne: state.propOne };
} 

export default connect(mapStateToProps)(MyComponent);

答案 2 :(得分:5)

使用Hooks,您可以使用类似的东西

import React from 'react';
import {useDispatch, useSelector} from "react-redux";

const AccountDetails = () => {

    const accountDetails = useSelector(state => state.accountDetails);
    const dispatch = useDispatch();

    return (
        <div>
            <h2>Your user name is: {accountDetails.username}</h2>
            <button onclick={() => dispatch(logout())}>Logout</button>
        </div>
    );
};


export default AccountDetails;

答案 3 :(得分:0)

首先应将connect组件添加到商店。

使用connect软件包提供的react-redux HOC进行连接。首先需要采用的方法是给定全局存储的方法,该方法仅返回具有该组件所需属性的对象。

例如:

import connect from 'react-redux'

const HelloComponent = ({ name }) =>
    <p>{ name }</p>

export default connect(
    globalState => ({ name: globalState.nestedObject.innerProperty })
)(HelloComponent)

为提高可读性,通常使用方法mapStateToProps,如下所示:

const mapStateToProps = state => ({
    name: state.nestedObject.innerProperty
})

export default connect(mapStateToProps)(HelloComponent)

答案 4 :(得分:0)

//tensorflow_serving/core:aspired_version_policy