我在React上使用TypeScript,在运行时使用PropTypes验证道具。最近我更新了TypeScript 3.9。3.从那时起,情况就不一样了。鉴于此接口:
interface StoryQuestionsProps extends WithMediaProps {
questionObject: {
question: string,
answer: string,
nid?: string,
path?: string,
type?: string,
},
children?: JSX.Element | string,
}
如果我声明这些proptype:
StoryQuestions.propTypes = {
questionObject: PropTypes.shape({
question: PropTypes.string.isRequired,
answer: PropTypes.string.isRequired,
nid: PropTypes.string,
path: PropTypes.string,
type: PropTypes.string,
}).isRequired,
children: PropTypes.oneOfType([
PropTypes.element,
PropTypes.string,
]),
}
抛出错误TS2322:
类型验证器;答案:验证器;nid:必需;路径:必需;类型:必需;}
相反,应为任何类型:
StoryQuestions.propTypes = {
questionObject: PropTypes.any.isRequired,
children: PropTypes.oneOfType([
PropTypes.element,
PropTypes.string,
]),
}
它不会返回错误,但这样我将错过questionObject
属性验证。为什么propType。shape()
不工作吗?我也尝试过包装propTypes。shape()
与propTypes。objectOf(PropTypes.shape(…)
但没有效果。
虽然propTypes
是一个很好的工具,但在使用TypeScript和React时,不需要使用propTypes
。您可以简单地用接口或组件道具的类型别名替换propTypes
。
一旦定义了接口,就可以安全地从组件中删除propTypes
。您可能希望以增量方式进行测试,以防出现任何问题。
话虽如此,我看不出任何问题与故事问题道具
的定义方式。
问题内容: 如何验证提供的道具是组件类(不是实例)? 例如 问题答案: 对于使用新功能的任何人,都会在此拉取请求中添加并于2019年2月10日发布。 该prop类型支持所有组件(本机组件,无状态组件,有状态组件,前向引用,上下文提供者/消费者)。 并且当所有元素都不是时,它会发出警告,并且传递的prop是元素()而不是类型时,它也会发出警告。 最后,您可以像使用其他道具类型一样使用它:
我正在使用Sprock和Spring,当我嘲弄我的一个组件类时,我得到了错误。 > CGLIB-NODEP:3.2.0 CGLIB:3.2.0 Spock-Core:1.0-groovy-2.4 Spring-测试:4.1.4.释放 java.lang.NoClassDefoundError:无法初始化类org.spockframework.mock.runtime.proxybasedmockf
要模拟文件。readAllBytes先抛出错误,然后抛出字节[]。。 getQueryTextFromFile是一个私有方法,从另一个方法调用以获取字节[] 如何在此处模拟以使用Mockito框架引发IOException
我正在尝试将customRepository与CRUDRepository一起使用。获取以下错误: 在JpaRepositoriesRegistrar上声明的@EnableJpaRepositories中定义的ConfigRepository。EnableJpaRepositoriesConfiguration:调用init方法失败;嵌套异常为org。springframework。数据存储库。查
我正在创建一个小型规则引擎,并为其使用drools。我的设计就像开发人员(即我:)将开发dsl,而业务用户可以创建规则(dslr)。 dsl文件 dslr文件 其余的java代码与示例中给出的代码类似。在此代码中,我得到以下错误 错误 而下面的单反效果很好 生成的DRL 注意这个生成的DRL-我可能会得到“e”的重复变量错误。这是另一个问题。但为了解决这个问题,我甚至尝试将dsl中的第二个变量修改
我一直在尝试一些组件,这些组件执行react-cache风格的事情,并在render方法中执行web服务调用,将promise抛出到React.Suspense组件,并在数据存在时重新呈现。它们调用web服务,检查响应,并根据响应呈现或抛出错误到错误边界。我注意到,每当在组件中抛出错误时,它都会呈现两次。第一次callstack看起来正常,第二次callstack包括对invokeGuardedC