Tengo una pregunta de novato. Necesito obtener un valor del almacenamiento local, pero estoy usando algunos métodos específicos que tenemos en nuestra aplicación. Estoy configurando mi valor con:
public setValue = async (key: keyof StorageContent, val: any) => { if (!localStorage) { console.warn("StorageManager: localStorage is not defined"); return; } // Let's convert `undefined` values to `null` to get the value consistent if (val === undefined) { val = null; } else { val = JSON.stringify(val); } return localStorage.setItem(key, val); };Después de hacer esto, estoy usando
static getBackendVersion() { return StorageManager.getValue("backendVersion"); } getValue
public getValue = async (key: keyof StorageContent) => { if (!localStorage) { console.warn("StorageManager: localStorage is not defined"); return undefined; } const item = localStorage ? localStorage.getItem(key) : null; if (!item || item === "null") { return undefined; } try { return JSON.parse(item); } catch (e) { return undefined; } };En mi componente de reacción donde estoy usando el estado y el montaje de identificación del componente para hacer esto
state: Readonly<IMainScreenState> = { screenKey: RouteHelper.getScreenRouteKey(this.props.match), apiVersion: "", }; public componentDidMount() { const backendVer = StorageHelper.getBackendVersion(); this.setState({ apiVersion: backendVer }); }Después de esto quiero renderizar esto
<aside className="Version"> <span>F:{AppConfig.PlatformVersion} / </span> <span> B:{apiVersion}</span> </aside> Pero esto me está dando un error. Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead. En el registro de conolse tengo
sé que puedo obtener esto con localStorage.getItem() pero necesitamos usar estos ayudantes para hacerlo limpio