Reactjs TypeScript React.SFC是否具有不可分配的类型?

Reactjs TypeScript React.SFC是否具有不可分配的类型?,reactjs,typescript,Reactjs,Typescript,我不熟悉打字脚本,没能消除错误。尝试了很多方法并将任何分配到任何我能分配到的地方,但我仍然收到以下错误: (9,7): Type '(props: IRendererProps & { children?: ReactNode; }) => any[]' is not assignable to type 'StatelessComponent<IRendererProps>'. Type 'any[]' is not assignable to type 'Rea

我不熟悉打字脚本,没能消除错误。尝试了很多方法并将
任何
分配到任何我能分配到的地方,但我仍然收到以下错误:

(9,7): Type '(props: IRendererProps & { children?: ReactNode; }) => any[]' is not assignable to type 'StatelessComponent<IRendererProps>'.
  Type 'any[]' is not assignable to type 'ReactElement<any> | null'.
    Type 'any[]' is not assignable to type 'ReactElement<any>'.
      Property 'type' is missing in type 'any[]'
(9,7):Type'(props:IRenderProps&{children?:ReactNode;})=>any[]”不可分配给类型“无状态组件”。
类型“any[]”不能分配给类型“ReactElement | null”。
类型“any[]”不能分配给类型“ReactElement”。
类型“any[]”中缺少属性“type”
这就是我渲染组件的方式

<Renderer
  renderStart={0}
  renderEnd={2}
  renderWrapper={(child: any) => <h1>{child}</h1>}
>
  <p>one</p>
  <p>two</p>
  <p>three</p>
</Renderer>
{child}
>
一个

两个

这就是组件的外观:

import * as React from "react";

interface IRendererProps {
  readonly renderStart: number;
  readonly renderEnd: number;
  readonly renderWrapper: (x: any) => any;
}

const Renderer: React.SFC<IRendererProps> = props => {
  const { children, renderStart, renderEnd, renderWrapper } = props;
  return React.Children.map(children, (child, index) => {
    if (index < renderStart || index > renderEnd) {
      return null;
    } else {
      return renderWrapper(child);
    }
  });
};

export default Renderer;
import*as React from“React”;
接口IRenderProps{
只读渲染器开始:编号;
只读rendernd:number;
只读RenderRapper:(x:any)=>any;
}
常量渲染器:React.SFC=props=>{
const{children、renderStart、renderrend、renderrapper}=props;
返回React.Children.map(Children,(child,index)=>{
如果(索引rendernd){
返回null;
}否则{
返回渲染器(子对象);
}
});
};
导出默认渲染器;
有人知道如何修复这些错误吗

编辑:好的,我把React.Children.map包装成碎片,这就解决了它

return <React.Fragment> {...array.map here...}</React.Fragment>
返回{…array.map here…}

不能同时直接返回多个元素。只需将它们包装成
React.Fragment

const Renderer: React.SFC<IRendererProps> = props => {
    const { children, renderStart, renderEnd, renderWrapper } = props;
    return <React.Fragment>
        {
            React.Children.map(children, (child, index) => {
                if (index < renderStart || index > renderEnd) {
                    return null;
                } else {
                    return renderWrapper(child);
                }
            })
        }
        </React.Fragment>;
};
const呈现器:React.SFC=props=>{
const{children、renderStart、renderrend、renderrapper}=props;
返回
{
React.Children.map(Children,(child,index)=>{
如果(索引rendernd){
返回null;
}否则{
返回渲染器(子对象);
}
})
}
;
};

不能同时直接返回多个元素。只需将它们包装成
React.Fragment

const Renderer: React.SFC<IRendererProps> = props => {
    const { children, renderStart, renderEnd, renderWrapper } = props;
    return <React.Fragment>
        {
            React.Children.map(children, (child, index) => {
                if (index < renderStart || index > renderEnd) {
                    return null;
                } else {
                    return renderWrapper(child);
                }
            })
        }
        </React.Fragment>;
};
const呈现器:React.SFC=props=>{
const{children、renderStart、renderrend、renderrapper}=props;
返回
{
React.Children.map(Children,(child,index)=>{
如果(索引rendernd){
返回null;
}否则{
返回渲染器(子对象);
}
})
}
;
};

基本上,在React中,一个组件,无论是SFC还是class组件,都只能返回一个
根节点。
React.StatelessComponent
的定义对您来说是一种提示

interface StatelessComponent<P> {
   (props: P & { children?: ReactNode }, context?: any): ReactElement<any> | null
}

基本上,在React中,一个组件(无论是SFC还是类组件)只能返回一个
根节点。
React.StatelessComponent
的定义对您来说是一种提示

interface StatelessComponent<P> {
   (props: P & { children?: ReactNode }, context?: any): ReactElement<any> | null
}

谢谢,我试过了,但不幸的是出现了相同的错误。对不起,最初被误解了,请检查编辑。谢谢,我试过了,但不幸的是出现了相同的错误。对不起,最初被误解了,请检查编辑。