lowcode-engine
lowcode-engine copied to clipboard
自定义物料里面可以进行网络请求吗?
我在自定义物料的时候,想在自定义物料里面去获取一些数据,然后根据数据的值来展示当前的组件内容。 我看目前自定义物料本身也是直接实现一个react组件,应该是可以实现网络请求的?
但是我在定义x6的物料的时候发现,x6本身返回的不是一个组件,只是一个节点配置的属性,请问这个时候如何实现在物料里面去网络请求呢?
就是如何在自定义物料里面实现一个网络请求呀?
渲染低代码页面时被如下包裹
createElement(AppContext.Provider, {
value: {
appHelper,
components: allComponents,
engine: this,
},
}, createElement(ConfigProvider, {
device: this.props.device,
locale: this.props.locale,
}, createElement(Comp, {
key: schema.__ctx && `${schema.__ctx.lceKey}_${schema.__ctx.idx || '0'}`,
ref: this.__getRef,
__appHelper: appHelper,
__components: allComponents,
__schema: schema,
__designMode: designMode,
...this.props,
})));
AppContext 为
export default function contextFactory() {
const { createContext } = adapter.getRuntime();
let context = (window as any).__appContext;
if (!context) {
context = createContext({});
(window as any).__appContext = context;
}
return context;
}
所以在组件中可以这样获取到appHelper
const { appHelper } = useContext((window as any).__appContext);
appHelper中包含了requestHandlersMap,你可以使用其中的fetch完成网络请求,它与低代码引擎共用了网络模块。