依存性の注入(DI)をしたい React コンポーネントの書き方
April 1, 2022
以下のように書くと、テストなどでモックを使用したい時は外から渡すこともでき、テスト以外のときは呼び出し元のコンポーネントでプロップスを渡す必要もないので便利です。
import Database from './Database';
type Props = {
database?: Database;
};
const defaultProps = {
database: new Database(),
};
function Component(props: Props) {
const { database } = { ...defaultProps, ...props };
const handleLogin = () => database.signin();
return <button onClick={handleLogin}>Sign in</button>;
}
export default Component;