上下文
Mitosis 上下文必须:
- 在自己的文件中创建
- 文件名必须以
context.lite.ts
结尾 - 默认导出必须是一个返回上下文对象的函数
示例:
// simple.context.lite.ts
import { createContext } from '@builder.io/mitosis';
export default createContext({
foo: 'bar',
get fooUpperCase() {
return this.foo.toUpperCase();
},
someMethod() {
return this.fooUpperCase.toLowercase();
},
content: null,
context: {} as any,
state: {},
});
然后,您可以在组件中使用它:
import { setContext, useContext } from '@builder.io/mitosis';
import Context from './simple.context.lite';
export default function ComponentWithContext(props: { content: string }) {
// 使用 `useContext` 访问上下文
const foo = useContext(Context);
// 使用 `setContext` 为上下文提供新值
setContext(Context, {
foo: 'baz',
content() {
return props.content;
},
});
return (
// 还可以使用 `Context.provider` 为上下文提供新值
<Context.Provider value={{ bar: 'baz' }}>{foo.value}</Context.Provider>
);
}