Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React组件中强制设置属性?_Javascript_Reactjs_Components - Fatal编程技术网

Javascript 如何在React组件中强制设置属性?

Javascript 如何在React组件中强制设置属性?,javascript,reactjs,components,Javascript,Reactjs,Components,是否有任何最佳实践可以使属性在React组件中成为强制性的 还有没有办法将属性设置为不可为null,这样它就不会为null或未定义?React具有一些内置的类型检查功能,可以使用prop types包 请记住,此类型检查仅在开发模式下进行。如果它们是必需的,您可以在构造函数或componentDidMount或getDerivedStateFromProps中检查属性并在那里处理它们 或者使用自动设置值,将未定义的道具null视为值,这取决于所需的行为 一种常见的方法是使用React道具类型,其

是否有任何最佳实践可以使属性在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 };