当使用isRequired时,React PropType没有给出错误

时间:2019-01-18 10:14:35

标签: reactjs react-proptypes

我正在尝试学习React,但是/* |-------------------------------------------------------------------------- | RELATIONS |-------------------------------------------------------------------------- */ public function product() { return $this->belongsTo('App\Models\Product'); } 即使与$this->crud->addColumn([ 'name' => "product_id", 'label' => "Product", 'type' => "select", 'entity' => "product", 'attribute' => 'name', 'model' => "App\Models\Product", ]); 一起使用也不会引发任何错误。我做错什么了吗?

代码是这样的

PropTypes

在未发送isRequired<div id="root"></div> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <script crossorigin src="https://unpkg.com/prop-types@15.6.2/prop-types.min.js"></script> <script crossorigin src="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script> <script type="text/babel"> function SayHello(props) { return ( <div> Hello {props.firstName} {props.lastName}! </div> ) } SayHello.propTypes = { firstName: PropTypes.string.isRequired, lastName: PropTypes.string.isRequired, } ReactDOM.render(<SayHello />, document.getElementById('root')) </script> 的情况下,这是否应该抛出errorwarning

因此使这两个道具变得强制。

firstName

我的浏览器没有错误或警告。

3 个答案:

答案 0 :(得分:3)

缩小版的原型可能有问题。

更改您的

// ==UserScript== // @name jQuery Button Test // @version 0.1 // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js // @include https://tasupport.co1.qualtrics.com/jfe/form/SV_0qez6NHJGoCAmMt // ==/UserScript== $(document).ready(function() { $("button:contains('Male')").click(); });

https://unpkg.com/prop-types@15.6.2/prop-types.min.js

您将收到警告失败的提示。

答案 1 :(得分:2)

这是有效的解决方案https://codesandbox.io/s/ymorp9y17v

import * as PropTypes from "prop-types";

const SayHello = props => {
  return (
    <div>
      Hello {props.firstName} {props.lastName}!
    </div>
  );
};

SayHello.propTypes = {
  firstName: PropTypes.string.isRequired,
  lastName: PropTypes.string.isRequired
};

export default SayHello;

答案 2 :(得分:1)

编辑

@JS Engine正确,将PropTypes从生产版本更改为开发版本。

https://unpkg.com/prop-types@15.6.2/prop-types.js