为了账号安全,请及时绑定邮箱和手机立即绑定

范围错误:调度操作时超出最大调用堆栈大小

范围错误:调度操作时超出最大调用堆栈大小

慕码人2483693 2022-09-16 21:09:59
我已将 es6 类更改为函数,现在当我尝试在子组件中调度作为 prop 向下传递的操作时,会出现上述错误。有什么想法吗?容器:import {bookmarkVideo} from '../actions/videos';export default function VideoPlayerScreen(props) {  const dispatch = useDispatch();  ...  const bookmarkVideo = id => {    dispatch(bookmarkVideo(id));    navigate('Video Player');  };  return (    <>          <VideoPlayerHeader            {...videoProps}            onClick={bookmarkVideo}          />            ...            </View>孩子:export default function VideoPlayerHeader(props) {    let {title, bookMarked, icon, id, onClick} = props;    return (            <View style={styles.rightContainer}>                <TouchableHighlight onPress={() => onClick(id)}> // dispatch action视频.js:export const bookmarkVideo = video => ({    type: "BOOKMARK_VIDEO",    video});
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

调度函数接收一个对象作为第一个参数,并且该对象需要根据 redux 约定具有类型和有效负载。


我认为您收到该错误是因为您有复发问题。您一次又一次地调用相同的函数。


export default function VideoPlayerScreen(props) {


  const dispatch = useDispatch();

  ...


  const bookmarkVideo = id => {

    dispatch({

      type: 'BOOKMARK_VIDEO',

      payload: id

    });

    navigate('Video Player');

  };


  return (

    <>

      <VideoPlayerHeader

        {...videoProps}

        onClick={bookmarkVideo}

      />

        ...

    </>

  );

}

请查看文档以获取更多信息 钩子 ·反应还原

这个答案也可能有用。超出最大调用堆栈大小错误


查看完整回答
反对 回复 2022-09-16
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号