【问题标题】:Do I Use PropTypes if Using Context API如果使用上下文 API,我是否使用 PropTypes
【发布时间】:2020-01-10 07:09:01
【问题描述】:

在这里使用 React 的前几个月... 我可以想象我会使用道具类型来获取真正的道具进入组件。但是,如果我作为消费者从上下文 api 提供者那里获取大部分数据,我还需要使用 prop 类型吗?还有什么我应该做的。这段代码似乎有点无意义。

App.propTypes = {
  context: PropTypes.object,
};

我只想以正确的方式做事。我重构了我的应用程序以使用上下文 api 而不是道具钻孔。这很好。只是不确定所有这些属性都属于哪里。

希望这是有道理的。

我以前在我的一个组件中有类似的东西。

 Filters.propTypes = {
  context: PropTypes.object,
   resData: PropTypes.object,
   query: PropTypes.object,
   updateQueryFields: PropTypes.func,
   scrollerBack: PropTypes.func,
   createAnalyticsEvent: PropTypes.func,
   resetEverything: PropTypes.func,
   resetStatus: PropTypes.string,
 };

但现在几乎所有这些数据都在上下文 api 提供程序中。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您可以使用PropTypes.shape 指定结构。

    例如

    Filters.propTypes = {
        context: PropTypes.shape({
            something: PropTypes.number.isRequired,
            anotherThing: PropTypes.string,
            anotherObject: PropTypes.shape({
                foo: PropTypes.arrayOf(PropTypes.number)
            })
        })
    }
    

    【讨论】:

    • 嗯,好的。我不得不研究一下。所以“形状”是一种检查对象内类型的方法,它是上下文。谢谢。将此标记为已接受的答案。我很好奇这是否是使用 context api 的人正在做的事情,例如,这是当前的最佳实践吗?
    • 同上。我做了类似的事情,并被告知仅将 propTypes 用于 prop 组件,而上下文不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多