reactjs - React defaultProps 不会填充缺少的对象道具
问题描述
如果我有一个组件,它的 propTypes 如下
import React, { Component } from 'react'
import propTypes from 'prop-types'
class MyComponent extends Component {
///
}
MyComponent.propTypes = {
hidden: propTypes.string.isRequired,
items: propTypes.object,
attributes: propTypes.array
}
MyComponent.defaultProps = {
hidden: false,
items: {},
attributes: ['baz', 'qux']
}
如果我的组件是这样调用的
<MyComponent hidden={true} items={[value: 'foo', label: 'bar']} />
我希望它props.attributes
填充了defaultProps
值,因为它的值没有定义。这是可以(容易)实现的吗?
解决方案
如果您在代码和框上查看此示例。
您的代码工作正常!
看看它是不是一个错字或类似的东西。
还要看看你的道具类型。
为什么默认hidden
是false
,而道具类型是string.isRequired
?
您的控制台上可能有错误,这可能会导致defaultProps
.
推荐阅读
- xamarin - 如何使用带有 ObservableCollection 而不是列表的 Xamarin DataTemplate?
- python - 在fuzzywuzzy中使用Process.extract以及具有最大和相同相似率的所有相似选择
- php - 我想使用 coinbase API 从 php 帐户发送/提取 btc
- java - 具有 O(log(N)) 时间复杂度操作的 HashMap
- python-3.x - Keras 条件传递模型、训练和预测
- arrays - 抛出 Julia 中非空数组的异常
- c++ - 初始化为 const float* 而不是 const float ** 的数组数组
- python - 想知道如何为句子大写字母编写 Python 代码
- soap - 尝试使用 Web 引用访问我的 .NET 项目中的 SSRS Web 服务 - 获取错误权限对用户来说是不够的
- php - 将元数据添加到图像的内容而不保存文件。在 PHP 中