Javascript 如何在React组件中强制设置属性?
是否有任何最佳实践可以使属性在React组件中成为强制性的Javascript 如何在React组件中强制设置属性?,javascript,reactjs,components,Javascript,Reactjs,Components,是否有任何最佳实践可以使属性在React组件中成为强制性的 还有没有办法将属性设置为不可为null,这样它就不会为null或未定义?React具有一些内置的类型检查功能,可以使用prop types包 请记住,此类型检查仅在开发模式下进行。如果它们是必需的,您可以在构造函数或componentDidMount或getDerivedStateFromProps中检查属性并在那里处理它们 或者使用自动设置值,将未定义的道具null视为值,这取决于所需的行为 一种常见的方法是使用React道具类型,其
还有没有办法将属性设置为不可为null,这样它就不会为null或未定义?React具有一些内置的类型检查功能,可以使用prop types包
请记住,此类型检查仅在开发模式下进行。如果它们是必需的,您可以在构造函数或componentDidMount或getDerivedStateFromProps中检查属性并在那里处理它们
或者使用自动设置值,将未定义的道具null视为值,这取决于所需的行为 一种常见的方法是使用React道具类型,其他答案已经提到了这一点。虽然它们在开发模式中作为控制台错误输出,但在生产模式中却没有op,但它们会导致警告 没有现有的不可为null的类型,因此它可以是自定义的道具类型函数:
const nullablePropType = (props, propName, componentName) => {
if (props[propName] == null)
return new Error('Prop `' + propName + '` is nullable in `' + componentName + '`.');
};
const Foo = props => ...;
Foo.propTypes = { bar: nullablePropType };
您可以在构造函数中对属性进行null检查,并在需要时抛出错误。
const nullablePropType = (props, propName, componentName) => {
if (props[propName] == null)
return new Error('Prop `' + propName + '` is nullable in `' + componentName + '`.');
};
const Foo = props => ...;
Foo.propTypes = { bar: nullablePropType };