UNPKG

@eva/fiber-eva

Version:

React EVA是一个让开发同学能够在React技术体系下,利用EVA JS的游戏研发能力,开发动画、游戏类场景的框架。它可以让开发同学用熟悉的JSX和Hooks语法编写动画、游戏场景的代码。

35 lines (30 loc) 1.06 kB
import {ReactElement} from 'react'; import {FiberRoot} from 'react-reconciler'; import createRenderer from './renderer'; // const containers = new Map<FiberRoot, any>(); function getPublicRootInstance(container: FiberRoot) { const containerFiber = container.current; if (!containerFiber.child) { return null; } return containerFiber.child.stateNode; } const {createInstance, reconciler} = createRenderer(); // export {createInstance, reconciler}; const Reconciler = { render(element: ReactElement, container: FiberRoot, props) { // Create a root Container if it doesnt exist if (!container._rootContainer) { container._rootContainer = reconciler.createContainer(container, false); createInstance(props); } return reconciler.updateContainer(element, container._rootContainer, null); // return getPublicRootInstance(container); }, unmountComponentAtNode(container: FiberRoot) { reconciler.updateContainer(null, container._rootContainer, null, () => { //noop }); }, }; export default Reconciler;