import React, { useState, useEffect } from 'react' interface Props { qiankunProps?: any } const App: React.FC = ({ qiankunProps }) => { const [globalState, setGlobalState] = useState({ msg: '等待获取...', user: '', history: [] as string[] }) const [inputValue, setInputValue] = useState('') useEffect(() => { if (qiankunProps?.onGlobalStateChange) { qiankunProps.onGlobalStateChange((state: any) => { setGlobalState(state) }, true) } }, [qiankunProps]) const changeParentState = () => { if (!inputValue) return if (qiankunProps?.setGlobalState) { const newMsg = `[React子应用]: ${inputValue}` qiankunProps.setGlobalState({ msg: newMsg, history: [...globalState.history, newMsg] }) setInputValue('') } } return (
React 子应用 ● 运行中

这是 React 子应用,它通过 props 深度集成到主框架中。

当前全局消息: {globalState.msg}

当前登录用户: {globalState.user}

setInputValue(e.target.value)} onKeyUp={(e) => e.key === 'Enter' && changeParentState()} placeholder="输入要发送的消息" style={{ flex: 1, padding: '8px', border: '1px solid #ddd', borderRadius: '4px' }} />
) } export default App