上下文
Mitosis 上下文必须:
- 在自己的文件中创建
- 文件名必须以
context.lite.ts结尾 - 默认导出必须是一个返回上下文对象的函数
示例:
// simple.context.lite.tsimport { 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>);}
