{"componentChunkName":"component---src-modules-datocms-post-page-page-tsx","path":"/posts/34","result":{"data":{"post":{"title":"React.jsでModal componentの実装","author":{"name":"t-hiroyoshi","images":{"r32":{"src":"https://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&fm=png&h=32&mask=ellipse&w=32","srcSet":"https://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=1&fm=png&h=32&mask=ellipse&w=32 1x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=1.5&fm=png&h=32&mask=ellipse&w=32 1.5x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=2&fm=png&h=32&mask=ellipse&w=32 2x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=3&fm=png&h=32&mask=ellipse&w=32 3x"},"r48":{"src":"https://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&fm=png&h=48&mask=ellipse&w=48","srcSet":"https://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=1&fm=png&h=48&mask=ellipse&w=48 1x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=1.5&fm=png&h=48&mask=ellipse&w=48 1.5x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=2&fm=png&h=48&mask=ellipse&w=48 2x,\nhttps://www.datocms-assets.com/29850/1591833490-1b406218d7547166c31e7a9789eb3f46.jpg?auto=format&dpr=3&fm=png&h=48&mask=ellipse&w=48 3x"}},"bio":"ShouldBeeの開発者。最近はディープラーニングについて勉強しています、すべて自動でテストできるように頑張ります。"},"date":"2015年9月3日","tags":["Inside-ShouldBee","React","ES6"],"category":"プログラミング","body":"<a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/d6adccab-3775-40e8-a624-84f27e766fdb.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"1200\" alt=\"image.png (140.9 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/d6adccab-3775-40e8-a624-84f27e766fdb.png\"></a>\n<p data-sourcepos=\"3:1-3:91\">こんにちは、現在ShouldBeeではReact.jsを用いたUIの開発をしています。</p>\n<p data-sourcepos=\"5:1-5:302\">ReactにはModalを実装した公開コンポーネントがいくつかあるのですが、React betaに対応していなかったのとアニメーション等の細かい設定を自分で設定したかったので自前で実装しました、今回はその紹介をしたいと思います！</p>\n<p data-sourcepos=\"7:1-7:63\">コンポーネント本体は下記のようになります。</p>\n<p data-sourcepos=\"9:1-10:192\">親コンポーネントのstateを<code>isActive</code>として受け取り表示、非表示を切り替えています。<br>\nまたモーダルを閉じるとき親コンポーネントのstateを更新する必要があるので、親コンポーネントのstate更新関数(<code>onClose</code>)を受け取っています。</p>\n<p data-sourcepos=\"12:1-12:104\">アニメーションは<a href=\"https://daneden.github.io/animate.css/\" target=\"_blank\" rel=\"noopener noreferrer\">Animate.css</a>を使用しています。</p>\n<div class=\"code-block\" data-sourcepos=\"14:1-98:3\">\n<div class=\"code-filename\">\n<i class=\"fa fa-file-code-o\"></i>jsx</div>\n<div class=\"highlight\"><pre class=\"highlight jsx\"><code><span class=\"k\">import</span> <span class=\"nx\">React</span> <span class=\"k\">from</span> <span class=\"dl\">\"</span><span class=\"s2\">react</span><span class=\"dl\">\"</span><span class=\"p\">;</span>\n<span class=\"k\">import</span> <span class=\"nx\">classNames</span> <span class=\"k\">from</span> <span class=\"dl\">\"</span><span class=\"s2\">classnames</span><span class=\"dl\">\"</span><span class=\"p\">;</span>\n\n<span class=\"k\">export</span> <span class=\"k\">default</span> <span class=\"kd\">class</span> <span class=\"nx\">Modal</span> <span class=\"kd\">extends</span> <span class=\"nx\">React</span><span class=\"p\">.</span><span class=\"nx\">Component</span> <span class=\"p\">{</span>\n  <span class=\"kd\">static</span> <span class=\"nx\">propTypes</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"na\">onClose</span><span class=\"p\">:</span> <span class=\"nx\">React</span><span class=\"p\">.</span><span class=\"nx\">PropTypes</span><span class=\"p\">.</span><span class=\"nx\">func</span><span class=\"p\">.</span><span class=\"nx\">isRequired</span><span class=\"p\">,</span>\n    <span class=\"na\">isActive</span><span class=\"p\">:</span> <span class=\"nx\">React</span><span class=\"p\">.</span><span class=\"nx\">PropTypes</span><span class=\"p\">.</span><span class=\"nx\">bool</span><span class=\"p\">.</span><span class=\"nx\">isRequired</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"kd\">constructor</span><span class=\"p\">(</span><span class=\"nx\">props</span><span class=\"p\">)</span> <span class=\"p\">{</span>\n    <span class=\"k\">super</span><span class=\"p\">(</span><span class=\"nx\">props</span><span class=\"p\">);</span>\n    <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"na\">isActive</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span> <span class=\"na\">willClose</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">};</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">componentWillReceiveProps</span><span class=\"p\">(</span><span class=\"nx\">nextProps</span><span class=\"p\">)</span> <span class=\"p\">{</span>\n    <span class=\"k\">if</span> <span class=\"p\">(</span><span class=\"nx\">nextProps</span><span class=\"p\">.</span><span class=\"nx\">isActive</span><span class=\"p\">)</span> <span class=\"p\">{</span>\n      <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">setState</span><span class=\"p\">({</span><span class=\"na\">isActive</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span> <span class=\"na\">willClose</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">})</span>\n    <span class=\"p\">}</span> <span class=\"k\">else</span> <span class=\"p\">{</span>\n      <span class=\"kd\">const</span> <span class=\"nb\">self</span> <span class=\"o\">=</span> <span class=\"k\">this</span><span class=\"p\">;</span>\n      <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">setState</span><span class=\"p\">({</span><span class=\"na\">willClose</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">});</span>\n      <span class=\"nx\">setTimeout</span><span class=\"p\">(()</span> <span class=\"o\">=&gt;</span> <span class=\"p\">{</span>\n        <span class=\"nb\">self</span><span class=\"p\">.</span><span class=\"nx\">setState</span><span class=\"p\">({</span><span class=\"na\">isActive</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">});</span>\n      <span class=\"p\">},</span> <span class=\"mi\">500</span><span class=\"p\">);</span> <span class=\"c1\">// wait to animate the modal closing.</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">onClose</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n    <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">props</span><span class=\"p\">.</span><span class=\"nx\">onClose</span><span class=\"p\">();</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">render</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n    <span class=\"kd\">const</span> <span class=\"nx\">modalClasses</span> <span class=\"o\">=</span> <span class=\"nx\">classNames</span><span class=\"p\">({</span>\n      <span class=\"dl\">\"</span><span class=\"s2\">animated</span><span class=\"dl\">\"</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n      <span class=\"dl\">\"</span><span class=\"s2\">slideInDown</span><span class=\"dl\">\"</span><span class=\"p\">:</span> <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span><span class=\"p\">.</span><span class=\"nx\">isActive</span><span class=\"p\">,</span>\n      <span class=\"dl\">\"</span><span class=\"s2\">slideOutUp</span><span class=\"dl\">\"</span><span class=\"p\">:</span> <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span><span class=\"p\">.</span><span class=\"nx\">willClose</span>\n    <span class=\"p\">});</span>\n\n    <span class=\"k\">if</span> <span class=\"p\">(</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span><span class=\"p\">.</span><span class=\"nx\">isActive</span><span class=\"p\">)</span> <span class=\"p\">{</span>\n      <span class=\"k\">return</span> <span class=\"p\">(</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n          <span class=\"p\">&lt;</span><span class=\"nt\">div</span>\n            <span class=\"na\">style</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">{</span>\n              <span class=\"na\">display</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">block</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">zIndex</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">8887</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">position</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">absolute</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">top</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">bottom</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">left</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">right</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">background</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">gray</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">opacity</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0.7</span><span class=\"dl\">\"</span>\n            <span class=\"p\">}</span><span class=\"si\">}</span>\n            <span class=\"na\">onClick</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">::</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">onClose</span><span class=\"si\">}</span>\n          <span class=\"p\">&gt;</span>\n          <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n          <span class=\"p\">&lt;</span><span class=\"nt\">div</span>\n            <span class=\"na\">className</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"nx\">modalClasses</span><span class=\"si\">}</span>\n            <span class=\"na\">style</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">{</span>\n              <span class=\"na\">display</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">block</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">zIndex</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">8888</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">height</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">200px</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">width</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">300px</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">position</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">absolute</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">top</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">bottom</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">left</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">right</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">0</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">margin</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">auto</span><span class=\"dl\">\"</span><span class=\"p\">,</span>\n              <span class=\"na\">background</span><span class=\"p\">:</span> <span class=\"dl\">\"</span><span class=\"s2\">white</span><span class=\"dl\">\"</span>\n            <span class=\"p\">}</span><span class=\"si\">}</span>\n          <span class=\"p\">&gt;</span>\n            <span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>Modal!!<span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n            <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">className</span><span class=\"p\">=</span><span class=\"s\">\"btn\"</span> <span class=\"na\">onClick</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">::</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">onClose</span><span class=\"si\">}</span><span class=\"p\">&gt;</span>\n              Close\n            <span class=\"p\">&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n          <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n      <span class=\"p\">);</span>\n    <span class=\"p\">}</span> <span class=\"k\">else</span> <span class=\"p\">{</span>\n      <span class=\"k\">return</span> <span class=\"kc\">false</span><span class=\"p\">;</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</div>\n<p data-sourcepos=\"100:1-100:220\">子コンポーネントが親コンポーネントのstateを直接更新するのはあまり好ましくありませんが、ビジネスロジックに直接関わるstateではないので良しとしています。</p>\n<p data-sourcepos=\"102:1-102:66\">このコンポーネントは下記の様に使用できます。</p>\n<div class=\"code-block\" data-sourcepos=\"104:1-133:3\">\n<div class=\"code-filename\">\n<i class=\"fa fa-file-code-o\"></i>jsx</div>\n<div class=\"highlight\"><pre class=\"highlight jsx\"><code><span class=\"k\">import</span> <span class=\"nx\">React</span> <span class=\"k\">from</span> <span class=\"dl\">\"</span><span class=\"s2\">react</span><span class=\"dl\">\"</span><span class=\"p\">;</span>\n<span class=\"k\">import</span> <span class=\"nx\">Modal</span> <span class=\"k\">from</span> <span class=\"dl\">\"</span><span class=\"s2\">components/Modal</span><span class=\"dl\">\"</span><span class=\"p\">;</span>\n\n<span class=\"k\">export</span> <span class=\"k\">default</span> <span class=\"kd\">class</span> <span class=\"nx\">TopPage</span> <span class=\"kd\">extends</span> <span class=\"nx\">React</span><span class=\"p\">.</span><span class=\"nx\">Component</span> <span class=\"p\">{</span>\n  <span class=\"kd\">constructor</span><span class=\"p\">(</span><span class=\"nx\">props</span><span class=\"p\">)</span> <span class=\"p\">{</span>\n    <span class=\"k\">super</span><span class=\"p\">(</span><span class=\"nx\">props</span><span class=\"p\">);</span>\n    <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"na\">isModalActive</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">};</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">openModal</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n    <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">setState</span><span class=\"p\">({</span><span class=\"na\">isModalActive</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">});</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">closeModal</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n    <span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">setState</span><span class=\"p\">({</span><span class=\"na\">isModalActive</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">});</span>\n  <span class=\"p\">}</span>\n\n  <span class=\"nx\">render</span><span class=\"p\">()</span> <span class=\"p\">{</span>\n    <span class=\"k\">return</span> <span class=\"p\">(</span>\n      <span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nc\">Modal</span> <span class=\"na\">isActive</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">state</span><span class=\"p\">.</span><span class=\"nx\">isModalActive</span><span class=\"si\">}</span> <span class=\"na\">onClose</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">::</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">closeModal</span><span class=\"si\">}</span><span class=\"p\">/&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">className</span><span class=\"p\">=</span><span class=\"s\">\"btn\"</span> <span class=\"na\">onClick</span><span class=\"p\">=</span><span class=\"si\">{</span><span class=\"p\">::</span><span class=\"k\">this</span><span class=\"p\">.</span><span class=\"nx\">openModal</span><span class=\"si\">}</span><span class=\"p\">&gt;</span>\n          Open modal\n        <span class=\"p\">&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n      <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">);</span>\n  <span class=\"p\">}</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</div>\n<p data-sourcepos=\"135:1-135:144\"><code>{::this...}</code>の書き方については<a href=\"/blog/2015-07-06-prevent-undefiend-this-in-react/\">こちらの記事</a>を参考にしてください。</p>\n<p data-sourcepos=\"137:1-137:94\">Gistは<a href=\"https://gist.github.com/t-hiroyoshi/f0beec8f7ea0be436797\" target=\"_blank\" rel=\"noopener noreferrer\">こちら</a>からどうぞ。</p>\n"}},"pageContext":{"id":"DatoCmsPost-5142969-ja","description":"こんにちは、現在ShouldBeeではReact.jsを用いたUIの開発をしています。 ReactにはModalを実装した公開コンポーネントがいくつかあるのですが、React betaに対応していなかったのとアニメーション等の細かい設定を自分で設定したかったので自前で実装しました、今回はその紹介をしたいと思います！ コンポーネント本体は下記のようになります。 親コンポーネントのstateをisActiveとして受け取り表示、非表示を切り替えています。 またモーダルを閉じるとき親コンポーネントのstateを更新する必要があるので、親コンポーネントのstate更新関数(onClose)を受け取って","toc":[],"ogpImageUrl":"https://www.datocms-assets.com/29850/1593190022-pastedimage20200627146.png?fm=png&mark64=aHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9NDAwJmg9NjQmZml0PWNyb3AmYmxlbmQ2ND1hSFIwY0hNNkx5OTNkM2N1WkdGMGIyTnRjeTFoYzNObGRITXVZMjl0THpJNU9EVXdMekUxT1RFNE16TTBPVEF0TVdJME1EWXlNVGhrTnpVME56RTJObU16TVdVM1lUazNPRGxsWWpObU5EWXVhbkJuUDIxaGMyczlaV3hzYVhCelpTWm1iVDF3Ym1jbWR6MHlOVFltYUQweU5UWSZibGVuZC1oPTY0JmJsZW5kLXg9MCZibGVuZC15PTAmYmxlbmQtbW9kZT1ub3JtYWwmbWFyazY0PWFIUjBjSE02THk5aGMzTmxkSE11YVcxbmFYZ3VibVYwTDM1MFpYaDBQM1I0ZEMxaGJHbG5iajF0YVdSa2JHVWxNa05zWldaMEpuUjRkQzFtYjI1MFBYTmhibk10YzJWeWFXWWxNa05pYjJ4a0puUjRkQzFqYjJ4dmNqMHlNakU0TVRZbWRIaDBOalE5WkVNeGIyRllTblpsVnpsNllVZHJKblI0ZEMxemFYcGxQVE13Sm1nOU5qUSZtYXJrLXg9NjQmbWFyay1hbGlnbj1taWRkbGUlMkNsZWZ0&mark-align=bottom%2Cleft&mark-x=100&mark-y=496&blend64=aHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9MTIwMCZoPTYzMCZmaXQ9Y3JvcCZtYXJrNjQ9YUhSMGNITTZMeTkzZDNjdVpHRjBiMk50Y3kxaGMzTmxkSE11WTI5dEx6STVPRFV3THpFMU9UTXhOVEE1TkRBdFkzSmhablJ6YldGdUxUQXhMbkJ1WncmbWFyay1hbGlnbj10b3AlMkNjZW50ZXImbWFyay13PTI1MCZtYXJrLXk9ODAmYmxlbmQ2ND1hSFIwY0hNNkx5OWhjM05sZEhNdWFXMW5hWGd1Ym1WMEwzNTBaWGgwUDNSNGRDMWhiR2xuYmoxdGFXUmtiR1VsTWtOalpXNTBaWEltZEhoMExXWnZiblE5YzJGdWN5MXpaWEpwWmlVeVEySnZiR1FtZEhoMExYQmhaRDB4TURBbWRIaDBMV052Ykc5eVBUSXlNVGd4TmlaMGVIUTJORDFWYlZab1dUTlJkV0Z1VUdwbllXUk9ZakpTYUdKRFFtcGlNakYzWWpJMWJHSnVWR3BuWVRkc2NuQmZiMjgwVlNaMGVIUXRjMmw2WlQwMU5TWjNQVEV5TURBbWFEMDJNekEmYmxlbmQtbW9kZT1ub3JtYWw&blend-mode=normal","otherPost":{"type":"author","title":"ES6でReact.ComponentのisMounted()が使えない問題の代替方法","slug":"/posts/46"}}}}