🔍

【React】... is missing in props validation の対処法

2023/11/18に公開

概要

  • propsが適切に検証されていないときにESLintからこの警告が表示されます
  • 要は、子コンポーネントにpropsで渡すものの認識を合わせるための警告です

対処法

原因療法 or 対処療法

  • 今回は原因療法の解説になります
  • 対処療法はこちらが参考になるかと思います
  • どちらを選択するのがベストかは状況に応じて判断してください

対処法

  • 親からonClickBtnを渡す想定で
App.jsx
function App() {

  const onClickBtn = () =>{
    console.log("clicked")
  }

  return (
    <>
      <div className="App">
        <Sidebar onAddNote={onClickBtn}/>
      </div>
    </>
  )
}
  • 子がそれを受け取る時に
  • 「PropTypes.func.isRequired」を明示して関数型であり、かつ必須であることを保証しています
Sidebar.jsx

// importする
import PropTypes from 'prop-types';

const Sidebar = ({ onClickBtn }) => {
  return (
    <button onClick={onAddNote}>
    {/* 省略 */}
  );
};
  
// これを記述
Sidebar.propTypes = {
  onClickBtn: PropTypes.func.isRequired,
};

Discussion