Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React native ref属性';参考';不存在于类型';内在的颂词;_Javascript_Typescript_React Native_Ref_React Ref - Fatal编程技术网

Javascript React native ref属性';参考';不存在于类型';内在的颂词;

Javascript React native ref属性';参考';不存在于类型';内在的颂词;,javascript,typescript,react-native,ref,react-ref,Javascript,Typescript,React Native,Ref,React Ref,我得到以下错误,但我无法找出如何修复它有人可以帮我解决 下面是关于世博会的完整代码链接 例如: 键入“{ref:(ref:any)=>any;数据:{key:string;title:string; text:string;backgroundColor:string;}[];renderItem:({item}: any)=>元素;renderPagination:(activeIndex:number)=>元素; scrollX:(scrollXList:any)=>any;}'不可分配

我得到以下错误,但我无法找出如何修复它有人可以帮我解决

下面是关于世博会的完整代码链接

例如:

键入“{ref:(ref:any)=>any;数据:{key:string;title:string; text:string;backgroundColor:string;}[];renderItem:({item}: any)=>元素;renderPagination:(activeIndex:number)=>元素; scrollX:(scrollXList:any)=>any;}'不可分配给类型 '内部属性&{data:any[];renderItem:(信息: ListRenderItemInfo&{dimensions:{宽度:编号;高度: 编号;};})=>ReactNode;renderSkipButton?:(()=>ReactNode)| 未定义;…19更多…;scrollX:((a:any)=>void)|未定义; }&FlatListProps&{…;}。上不存在属性“ref” 键入“intrinsicationattributes&{data:any[];renderItem:(信息: ListRenderItemInfo&{dimensions:{宽度:编号;高度: 编号;};})=>ReactNode;renderSkipButton?:(()=>ReactNode)| 未定义;…19更多…;scrollX:((a:any)=>void)|未定义; }&FlatListProps&{…;}

链接:


常量滑块=useRef(null);
...
(slider.current=ref)}
...
type itemtrops={
数据:ItemT[];
renderItem:(
信息:ListRenderItemInfo&{
尺寸:{宽度:编号;高度:编号};
}
)=>React.ReactNode;
renderSkipButton?:()=>React.ReactNode;
RenderNext按钮?:()=>React.ReactNode;
renderDoneButton?:()=>React.ReactNode;
renderPrevButton?:()=>React.ReactNode;
onSlideChange?:(a:编号,b:编号)=>无效;
onSkip?:()=>无效;
onDone?:()=>无效;
renderPagination?:(activeIndex:number)=>React.ReactNode;
activeDotStyle:ViewStyle;
dotStyle:ViewStyle;
dotClickEnabled:布尔值;
斯基普拉贝尔:弦;
doneLabel:字符串;
nextLabel:字符串;
标签:字符串;
showDoneButton:布尔值;
showNextButton:布尔值;
showPrevButton:布尔值;
showSkipButton:布尔值;
底部按钮:布尔;
scrollX?:(a:任意)=>无效;
}&FlatListProps;
常量AppIntroSlider:FunctionComponent=({
数据,
renderItem,
renderSkipButton,
RenderNext按钮,
RenderOne按钮,
renderPrevButton,
一旦发生变化,
昂斯基普,
昂丹,
渲染渲染,
activeDotStyle={
背景颜色:“rgba(255,255,255,.9)”,
},
点样式={
背景色:“rgba(0,0,0,2)”,
},
dotClickEnabled=true,
skipLabel='Skip',
doneLabel='Done',
nextLabel='Next',
prevLabel='返回',
showDoneButton=true,
showNextButton=true,
showPrevButton=false,
showSkipButton=false,
bottomButton=false,
额外数据,
scrollX,
…其他道具
}:any)=>{

当您登录slider时。currentref显示null,因为您的AppIntroSlider组件是一个功能组件,不支持这种方式。您有两种解决方案,将AppIntroSlide更改为类组件,它将正常工作,或者使用forwardRef> 当您记录slider.currentref时,它会显示null,因为您的AppIntroSlider组件是一个功能组件,不支持这种方式。您有两种解决方案,将AppIntroSlide更改为类组件,它会正常工作,或者使用forwardRefI看一看您发布的带有
useImperialiveHandle
的示例,您的用法基本正确。您的用法与前面的用法略有不同,因为您的函数
goToSlide
带有参数

为引用的组件定义
接口
时,需要使用适当的参数类型定义
goToSlide
函数。您当前将其定义为不带参数的函数(
goToSlide():void
),这就是为什么会出现错误“Type”(pageNum:number,triggerOnSlideChange?:布尔值|未定义)=>void'不可分配给带有
UseImperializeHandle
的行上的类型“()=>void.”

export interface MyRef {
  goToSlide(pageNum: number, triggerOnSlideChange?: boolean): void;
}
MyCustomComponentProps
上的一组道具应该定义为可选的。您已经为它们设置了默认值

在修复了这两个问题之后,除了可选链接引起的错误之外,所有错误都会消失。
。这是一个新的ish功能,我不知道如何让Expo理解它

从技术上讲,您不需要在
sliderRef
之后使用
?。
,因为ref对象总是被定义的。它是
当前的
属性,可能是
null
,所以您确实需要
?。
当前的
之后使用
。但是如果红色下划线困扰您,您也可以用老式的方法检查它:

const prev = (activeIndex: number): void => {
  if ( sliderRef.current ) {
    sliderRef.current.goToSlide(activeIndex - 1, true);
  }
};

我看了一看你用
UseImperialiveHandle
发布的示例,你基本上是对的。你的用法与前面的有点不同,因为你的函数
goToSlide
带有参数

为引用的组件定义
接口
时,需要使用适当的参数类型定义
goToSlide
函数。您当前将其定义为不带参数的函数(
goToSlide():void
),这就是为什么会出现错误“Type”(pageNum:number,triggerOnSlideChange?:布尔值|未定义)=>void'不可分配给带有
UseImperializeHandle
的行上的类型“()=>void.”

export interface MyRef {
  goToSlide(pageNum: number, triggerOnSlideChange?: boolean): void;
}
MyCustomComponentProps
上的一组道具应该定义为可选的。您已经为它们设置了默认值

在修复了这两个问题之后,除了可选链接引起的错误之外,所有错误都会消失。
。这是一个新的ish功能,我不知道如何让Expo理解它

你不知道