【问题标题】:how can i get mapStateToProps props in class function我如何在类函数中获取 mapStateToProps 道具
【发布时间】:2018-10-28 21:01:17
【问题描述】:
function mapStateToProps (state) {
    return {pickupProps:state.BookingData.pickup}
}
// export default Map;
const ScriptLoadedMap = scriptLoader(
    [config.MapApi]
)(Map);
export default connect(mapStateToProps,actions)(ScriptLoadedMap);

在这里我想访问 pickupProps。当我在渲染内部进行安慰时,我得到了道具值,但是当我在任何类函数中调用 第一次时,我' m 得到 undefined 值。
我认为这里的状态没有更新,所以组件没有重新渲染。

isPickEmpty=(emptyPickState)=>{

    console.log(this.props.pickupProps);

};

这里如何访问pickupProps
提醒一件事,当我调用函数时,我可以第二次访问pickupProps 请帮帮我。我卡住了kkkkkkkk!!

【问题讨论】:

    标签: redux react-redux redux-thunk reducers


    【解决方案1】:

    尝试使用“getDerivedStateFromProps”更新状态,然后在方法中使用状态。
    另外,您是否在 cunstructor 中绑定了该方法?您是否尝试过访问“componentDidMount”方法中的道具?

    【讨论】:

    • 我正在从 Booking 组件向 redux reducer state 发送值,同时我正在调用 Map的函数> 组件使用 ref 所以在 Map 组件中我想获取 redux reducer state,然后我使用 MapStateToProps 函数来获取值。所以我的问题是 Map 组件没有渲染,所以我无法在我的类函数中访问 MapStateToProps(props value),当我在 render() 中使用时,我可以访问那些props.so 有没有办法在组件没有第一次重新渲染()的类函数中访问 redux 道具。
    • 首先,您应该上传更多代码,因为很难从您的描述中理解到底发生了什么。 mapStateToProps 的 props 未在 render 方法中设置,因此不必等待组件呈现以访问它们。所以直截了当地说:mapStateToProps 是在构建组件时设置道具,所以如果你没有找到它们,问题可能出在其他地方。例如,如果您在函数内部使用this,但没有将上下文绑定到该函数。你试过我的建议了吗?
    • 是的,我绑定了所有函数,它没有在 componentDidMount 中第一次安慰 value,因为它没有重新渲染
    • 再一次,重新渲染与它无关。 mapStateToProps 在你的组件初始化之前被调用!您的代码没有显示 isPickEmpty 的调用位置,也没有显示您在任何时候将其绑定到上下文。
    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2020-09-19
    • 2017-08-26
    • 1970-01-01
    • 2021-05-23
    • 2022-11-28
    相关资源
    最近更新 更多