2017-08-09 46 views
2

我可以在容器组件中使用PropTypes吗?容器组件中的PropTypes

通常情况下,在容器组件中,我连接到redux存储并获取自己的数据,但有些情况下我想从父组件传递附加的道具。在这种情况下,我想确保通过使用PropTypes来获得所需的全部数据。例如:

MyComponent.PropTypes = { 
    someObject: PropTypes.object.isRequired 
} 

我还没有看到容器组件所使用的任何PropTypes例子,所以我不知道我能不能这么做。

+0

您可以在每个有效的反应组件上使用PropTypes。容器组件只是组件。他们没有什么特别的。 – trixn

回答

1

你当然可以做到。你没有看到它,因为如果它是你传递下来的道具,问题是它为什么不是你的应用程序状态的一部分。 Redux的一个关键点是你拥有“真实的一个来源”,你的智能容器组件只需要与之交互。将道具传递给容器有时会导致大规模应用程序的混淆,但如果这只是一个个人项目,我并不认为会造成危害。

这不是“可以”与“应该”的问题。

+0

同意!我试图找到最干净的架构方法来处理常见的情况,我有一个可重用的日期选择器组件。我试图找出把处理函数放在哪里。最初我创建它作为一个演示组件,以保持它的干净和简单。然后我意识到处理函数是相同的,所以他们应该去外部文件或(可能)使用更高阶的组件。然后我意识到为什么不使用普通的容器组件并发送道具。 https://stackoverflow.com/questions/45599409/moving-handler-functions-outside-of-react-component – Sam

+0

仍然不确定要走哪条路。为了简单起见,我认为使用普通的容器组件将是最清洁的,因为我可以访问我的动作创建者,并只需从父组件传递必要的道具。通过使用PropTypes,我可以确保收到我需要的一切。 – Sam