高阶组件看不到道具



我正在使用反应和redux的反应。错误来自Redux商店的组件。在那之后,我收到了:渲染中什么都没有。这通常意味着返回语句丢失。或者,什么都不渲染,返回null。

这有什么问题?为什么HOC看不到道具?

我的组件:

import React, { Component } from 'react';
import withHandleError from './withHandleError';
class SendScreen extends Component {
  render() {
    const { error } = this.props;
    return (
    <div> Test </div>
    )
  }
};
const mapStateToProps = ({ppm}) => ({
  error: ppm.error
})
export default withHandleError(connect(mapStateToProps)(SendScreen));

和HOC:

import React, { Component } from 'react';
import { ErrorScreen } from '../../ErrorScreen';
import { View } from 'react-native';
export default Cmp => {
  return class extends Component {
    render() {
      const {error, ...rest } = this.props;
      console.log(error)  //// undefined....
      if (error) {
        return <ErrorScreen />
      }
      return <Cmp { ...rest } />
    }
  }
}

当您要访问另一个人提供的道具时,您称之为HOC的顺序很重要。重新订购您的连接并使用Handleerror HOC可以正常工作

import React, { Component } from 'react';
import withHandleError from './withHandleError';
class SendScreen extends Component {
  render() {
    const { error } = this.props;
    return (
    <div> Test </div>
    )
  }
};
const mapStateToProps = ({ppm}) => ({
  error: ppm.error
})

export default connect(mapStateToProps)(withHandleError(SendScreen));

最新更新