我如何在类函数中获取 mapStateToProps 道具

Posted

技术标签:

【中文标题】我如何在类函数中获取 mapStateToProps 道具【英文标题】:how can i get mapStateToProps props in class function 【发布时间】: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!!

【问题讨论】:

【参考方案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,但没有将上下文绑定到该函数。你试过我的建议了吗? ***.com/questions/50406252/… 是的,我绑定了所有函数,它没有在 componentDidMount 中第一次安慰 value,因为它没有重新渲染 再一次,重新渲染与它无关。 mapStateToProps 在你的组件初始化之前被调用!您的代码没有显示 isPickEmpty 的调用位置,也没有显示您在任何时候将其绑定到上下文。

以上是关于我如何在类函数中获取 mapStateToProps 道具的主要内容,如果未能解决你的问题,请参考以下文章

Redux 应用程序嵌套状态中的 mapStateToProps() 状态?

如何导出 mapStateToProps 和 Redux 表单?

如何访问 mapDispatchToProps 中 mapStateToProps 添加的属性?

mapStateToProps 获取 url 参数?

React - 在我的待办事项应用程序中没有调用 mapStateToProps 函数

从 Redirect 获取 mapStateToProps 中的 ownProps.match.params.id