index.js :
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
const obj = { a: "xxx", b: "yyy" }
localStorage.setItem('obj', JSON.stringify(obj));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
client.js :
let settings = JSON.parse(localStorage.getItem('obj'));
const oktaAuth = new OktaAuth({
issuer: settings['a'],
clientId: settings['b'],
redirectUri: window.location.origin + '/login/callback',
logoutUrl: window.location.origin + '/login',
// pkce: false
});
J'ai importé le client dans l'application et il semble que localStorage devrait définir l'élément avant l'exécution de client.js. Mais mon localStrorage.getItem('obj') est nul. Quelqu'un sait-il pourquoi?
Utilisez useEffect()
import React, {useEffect} from 'react'; const App = () => { useEffect(() => { const obj = { a: "xxx", b: "yyy" } localStorage.setItem('obj', JSON.stringify(obj)); },[]) return ( ) }