【发布时间】:2022-01-27 10:46:42
【问题描述】:
我正在尝试创建一个全局可访问对象,以便可以更改其值并可以从每个组件中读取。我创建了一个带有静态字段的类:
export default class Settings {
static first: string;
static second: string;
}
假设我在不同的文件中有两个组件:
import Settings from './Settings'
// located in firstComponent file
export default function FirstComponent() {
Settings.First = 'test' <---------------- SET VALUE
return (some html)
}
// located in secondComponent file
export default function SecondComponent() {
let qq = Settings.First <----------------------- ASSUME HERE IS VALUE "TEST"
}
但它不起作用。如何创建可在 C# 静态类等所有组件中访问的静态类/字段。有可能吗?
提前致谢
UPD 看起来像 ipcRenderer 中的问题:
export default function SettingsEditor() {
const [state, setState] = React.useState({
ipAddress: Settings.ipAddress,
});
useEffect(() => {
electron.ipcRenderer.once('readSettings', (args) => {
console.log('Filling settings');
console.log(args); <------ HERE WE HAVE VALUE like 10.10.10.10
setState({ ...state, ipAddress: args.ipAddress});
console.log(state.ipAddress); <------ UNDEFINED
state.ipAddress = args.ipAddress;
console.log(state.ipAddress); <------ UNDEFINED
Settings.ipAddress= args.ipAddress;
console.log(Settings.gateIpAddress); <------ UNDEFINED
});
electron.settingsApi.read();
}, []);
我该如何处理?
【问题讨论】:
-
设置后不能直接使用更新状态。 stackoverflow.com/questions/66607037/…
-
为什么静态字段也没有更新,为什么页面没有重新呈现?
-
可能有很多原因。
FirstComponent不能在SecondComponent之前运行。 -
看来我找到了原因,我不明白 =) 我会更新问题
-
谢谢你,@evolutionxbox
标签: javascript reactjs typescript electron