在 mapStateToProps 中处理应用程序错误的有效方法?

Wil*_*gan 5 reactjs redux react-redux

我正在寻找关于在 mapStateToProps 中处理错误的最健壮和可靠的方法的建议,如果甚至建议在 React+Redux 应用程序中尝试此级别的方法是否可行。

例如,如果我将react-redux'sconnect与一个组件和一个一起使用mapStateToProps

function mapStateToProps(state, ownProps) {
    throw Error('Some unfortunate error.');
    return {
        // some data
    }
}
Run Code Online (Sandbox Code Playgroud)

我想捕获此错误,并可能在渲染组件的位置显示一个错误组件。我不会尝试恢复 - 只是拿起并继续前进。

目前我注意到这完全停止了 React,并且页面可能需要重新加载: Uncaught TypeError: Cannot read property 'getHostNode' of null

Ram*_*shi 2

我会将异常作为常规数据处理,因为connect仍然期望一些道具将它们传递给您的组件。我会做这样的事情:

function mapStateToProps(state, ownProps) {
 try {
   // code
   return {
       // some data
   }
 } catch (e){
   return {
       error: e
   }
 }
}
Run Code Online (Sandbox Code Playgroud)

然后让组件查找props.error并显示错误消息。