尝试呈现使用者时出现新的React上下文API和流错误

Але*_*нко 4 reactjs flowtype

当我尝试渲染Consumer时,流程显示下一个错误:

[flow]无法创建SidebarContextConsumer元素,因为property changeOpenState的第一个参数的undefined [1]中缺少property children。(参考:[1])

这是我的代码:

// @flow
import React, { createContext } from 'react';

import type { Context, ProviderProps } from './Sidebar.types';

const SidebarContext = createContext();

export const SidebarContextConsumer = SidebarContext.Consumer;

/* eslint-disable react/no-unused-state */
export class SidebarContextProvider extends React.Component<ProviderProps, Context> {

  state = {
    dynamic: false,
    open: false,
    transition: false,
    changeDynamicMode: (dynamic: boolean) => {
      this.setState({
        dynamic,
        open: false,
        transition: false,
      });
    },
    changeOpenState: (open: boolean, transition: boolean = true) => {
      this.setState({ open, transition });
    },
  };

  render() {
    const { children } = this.props;

    return (
      <SidebarContext.Provider value={this.state}>
        {children}
      </SidebarContext.Provider>
    );
  }

}
/* eslint-enable */
Run Code Online (Sandbox Code Playgroud)

流声明:

export type Context = {
  changeDynamicMode: (dynamic: boolean) => void,
  changeOpenState: (open: boolean, transition?: boolean) => void,
  dynamic: boolean,
  open: boolean,
  transition: boolean,
};
Run Code Online (Sandbox Code Playgroud)

Sha*_*moo 8

这似乎是流类型的已知限制

我解决了我的情况下的错误:

const SidebarContext: Object = createContext();
Run Code Online (Sandbox Code Playgroud)