[英]Passing callback as parameter to callback give me error Expected 1 arguments, but got 2
I'm tring to pass a callback to a set state but it gives me this typescript error => Expected 1 arguments, but got 2.ts(2554).我试图将回调传递给一组 state,但它给了我这个 typescript 错误 => 预期 1 arguments,但得到 2.ts(2554)。 i just wanted to pass a callback to setState to update the satate of the new object when function onVideoPlayed is called.
我只是想将回调传递给 setState 以在调用 function onVideoPlayed 时更新新 object 的状态。 can you help me?
你能帮助我吗? thank you in advance
先感谢您
here is my code:这是我的代码:
const [videos, setVideos] = useState<Video[]>(videosList);
const [currentLanguage, setCurrentLanguage] = useState(i18n.language);
const navigation = useNavigation();
const renderItem = ({item, index}: {item: Video; index: number}) => {
return (
<Pressable onPress={() => onVideoPlayed(item, index)}>
<Card video={item} currentLanguage={currentLanguage} />;
</Pressable>
);
};
function onVideoPlayed(video: Video, index: number) {
if (video.viewedTimes && video.viewedTimes > 0) return;
let newVideos = videos;
newVideos[index].viewedTimes++;
setVideos(newVideos, () => {}); ===> "here it gives me the error"
}
return (
<View style={{flex: 1}}>
<FlatList
data={videos}
keyExtractor={item => item.title}
renderItem={({item, index}) => renderItem(item, index)}
numColumns={4}
contentContainerStyle={appStyles.cardListStyle}
/>
</View>
);
}
function onVideoPlayed(video: Video, index: number) {
if (video.viewedTimes && video.viewedTimes > 0) return;
let newVideos = [...videos];
newVideos[index].viewedTimes = newVideos[index].viewedTimes + 1;
setVideos(newVideos);
}
Try尝试
setVideos(state=> {
// Changes to the state
return state;
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.