【Day9】React Proptype的验证及套用方法看这里 ! ٩(●˙▿˙●)۶…⋆ฺ

如果我们想要强迫传来的Prop是某种型态或是强迫某个Prop一定要被传入的话,

我们可以使用PropType这个Reactj外部套件来作验证


  • 首先呢先来执行以下指令来安装这个套件吧!!

    yarn add prop-types --dev
    
  • 接着,在我们要使用这个套件的Component里import这个套件

    import React from 'react';
    import propTypes from 'prop-types';
    
    export default class  Test extends React.Component {
    
        render(){
    
            return(
                <div>1234</div>
            )
        }
    }
    
  • import完成後,我们来试试看验证一个叫作word的prop吧!

    import React from 'react';
    import propTypes from 'prop-types';
    
    export default class  Test extends React.Component {
    
        render(){
    
            return(
                <div>1234</div>
            )
        }
    }
    Test.propTypes={
        word:propTypes.string.isRequired,
    
    }
    
  • 再来,试着在父类别导入这个Component吧 ! (这边小菜鸟就直接在App.js里导入这个Component)

    import './App.css';
    import Test from './Components/Test'
    
    function App() {
    
      return (
        <div className="App">
    
          <Test/>
        </div>
      );
    }
    
    export default App;
    

    这时候各位看官们可以打开F12的Console,由於在子类别我们有限定word这个prop是必要传入的,但我们在父类别完全没传入,所以会看见如下图的警告

  • 我们试着传入word这个prop到子类别

    import './App.css';
    import Test from './Components/Test'
    
    function App() {
    
      return (
        <div className="App">
    
          <Test word={1234}/>
        </div>
      );
    }
    
    export default App;
    

    然後打开console,我们又会发现警告又告诉我们word我们有在子类别规定它是string型态,但我们传入的是number型态(如下图)

  • 最後我们将word调整成文字型态

    import logo from './logo.svg';
    import './App.css';
    import Test from './Components/Test'
    
    function App() {
    
      return (
        <div className="App">
    
          <Test word={"1234"}/>
        </div>
      );
    }
    
    export default App;
    
    

完成後,讨人厌的红色警告就不见了 !!

Proptype验证的好处,是帮助我们在写code的时候更谨慎,

因为有时候props太多,传来传去,很容易就少传了,也可以帮我们验证prop的型态

虽然说,这中间有可能一直看到恼人的红色警告,但清完这些警告後,
就会有一种通体舒畅的感觉(๑˃̵ᴗ˂̵)ﻭ !

我们在安装propType检查的套件的时候,是安装在开发模式,
如果我们不想要使用者模式(Production Mode)显示这恼人的红色警告的话,
其实我们是可以移除的!

  • 执行 yarn add babel-plugin-transform-react-remove-prop-types--dev

  • 在webpack.config里加上以下程序码

    .configureBabel((babelConfig)=>{
          if(Encore.isProduction()){
              babelConfig.plugins.push(
                  'transform-react-remove-prop-types'
              )
          }
        })
    

这篇介绍完了Proptype验证,
下一篇要来介绍在DOM上传参考(ref)的方法,好啦真的!!
下一篇结束後就要进入我们的Test了~


<<:  [Day6] Android - Kotlin笔记:RecycledViewPool

>>:  Day 07-制作购物车系统环境之Node.js

css margin

今天来说如何设定区块间的距离,需要用到margin这个语法 先创造出两个黑色方块与一个粉色方块来观察...

DAY7-JAVA的类别(1)

类别 类别(class)在JAVA中是不可缺少的,而且至少会存在一个或一个以上。主要是让程序语言能更...

【Day 02】C 语言的程序结构

程序码说明 一般执行的程序大多会有以下架构: int main(){ 程序码 } 程序在执行的时候,...

15.unity变数传递(下)场景间数据传递

上一篇提到改变其他脚本的全域变数 这一篇针对场景间保留数据的方法作探讨。 在unity换场景(sce...

[Python 爬虫这样学,一定是大拇指拉!] DAY16 - 从爬虫看 API / CGI

虽然爬虫只需要使用到 URL 送 Request 就好,但我们还是需要对 API / CGI 有一些...