javascript - 在 ReactJs 中 defaultProps 是否有效
问题描述
我正在关注一个教程,他们设置了一个static object
命名defaultprops
,并且在设置后它this.props
可以在同一个组件中使用,为什么这可能,我的意思是它的功能是什么,static defaultProps
它是 React 中的一个内置函数。
class TestComponent extends Component {
static defaultprops = {
food: ["goatmeat", "yam"]
}
render() {
let categories = this.props.defaultprops.food.map(foods => {
return <option key={foods}>{foods}</option>
});
let {test} = this.props;
return (
<p>
{this.props.test}
</p>
);
};
}
解决方案
默认 props 很好,因为在将它们传递给组件时不必指定所有 props。顾名思义,它允许您为您的道具设置很好的默认值,即使没有传入覆盖值,也会使用这些默认值。请记住,省略道具将导致使用默认值,而传入 null将导致使用 null 值。
更多信息可以在这里找到。
编辑
要更明确地回答提出的问题:
这是可能的,因为这就是 React 的工作方式。这是为程序员和逻辑方便的内置功能。
对于TestComponent
您的示例中的 ,假设它在另一个组件中使用。如果您只使用<TestComponent />
,则该组件的food
值为["goatmeat","yam"]
。但是,您可以随时通过在调用 prop 时传入不同的值来覆盖它。例如,您可以使用<TestComponent food={["cheese", "eggs", "cabbage"]}/>
. 这将导致该组件实例的food
值为["cheese", "eggs", "cabbage"]
。
我认为这也是一个很好的观点,它应该是defaultProps
而不是defaultprops
因为我相当确定大写很重要,但如果有人想纠正我,我很乐意编辑这一点。
推荐阅读
- android-biometric-prompt - 使用生物识别时如何打开/关闭身份验证指纹或面部识别
- android - 将多个图像从 uri 移动到文件夹
- centos - 如果没有配置文件中的 ptr 记录,dnsmasq 反向 iplookup 将无法工作
- python - 我可以在计算的同时得到未来的未来和计算状态吗?
- c# - MODEL和DAL之间的循环依赖
- postgresql - 为什么 psql --version 在 zsh macOS 中不起作用?
- flutter - 为什么我的 ListView.builder() 不可滚动?
- python - .predict() 仅在 CPU 上运行,即使 GPU 可用
- sap-ase - 如何在 Sybase ASE 中查找列的默认值
- windows - 脚本适用于 windows 10 但不适用于 windows 7