読み込みが終了しない場合は、しばらく待つか、リロードを行なってください。
If loading does not finish, wait for a while or reload.
エンジニア向けの情報を発信するブログです。
どなたでも発信できます。
お好きに利用していただれば幸いです。


import './App.css';
import {useState} from 'react';
function App() {
let app_style = {
position: 'absolute',
top: '50%',
left: '50%',
};
const initialButtonStyle = {
color: 'initial',
};
const [button_style, setButtonStyle] = useState(initialButtonStyle);
return (
<div className="App" style={app_style}>
通常
<button style={button_style} onClick={() => setButtonStyle(button_style.color === 'red' ? {color: 'initial'} : {color: 'red'} )}>ボタン</button>
</div>
);
}
export default App;

import './App.css';
import {useEffect} from 'react';
function App() {
let app_style = {
position: 'absolute',
top: '50%',
left: '50%',
};
// 👇 scriptを埋め込む処理
let script = null;
// 同じscriptが量産されるのを防ぐため同じscriptタグがある場合は処理しない
if (document.querySelector('#crazy_script') === null) {
script = document.createElement('script');
script.id = 'crazy_script';
// innerHTMLでやりたい内容を書く
script.innerHTML = `
let button = document.getElementById('button');
button.addEventListener('click', function (e) {
console.log('力技'); // 👈ちゃんと反応してるかデバッグ
if (this.style.color !== 'initial') {
this.style.color = 'initial';
} else {
this.style.color = 'red';
}
});
`;
}
// reactのレンダリング後にscriptを埋め込みたいのでuseEffectで埋め込む
useEffect(() => {
if (script !== null) {
document.body.appendChild(script);
}
})
return (
<div className="App" style={app_style}>
力技
<button style={{color: 'initial'}} id="button">ボタン</button>
</div>
);
}
export default App;


