cherry-pick 提交后组件报错,是不是代码冲突没处理好?

Mr-惠泽 阅读 14

我从 feature 分支 cherry-pick 了一个提交到 main 分支,结果 React 组件直接报错了,说找不到状态变量。明明那个提交在原分支跑得好好的,难道是 cherry-pick 时漏了依赖的改动?

我试过手动对比两个分支的文件差异,但改动太多看花眼了。现在页面一加载就崩,控制台提示 Cannot read property ‘loading’ of undefined。

const MyComponent = () => {
  const { loading, data } = useFetch('/api/items'); // 这行报错
  return loading ? <Spinner /> : <List items={data} />;
};
我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
ლ可慧
ლ可慧 Lv1
你这明显是 useFetch 这个 hook 根本没跟过来,或者 main 分支上的版本不一样。cherry-pick 只会拿你选的那个 commit,那 commit 里要是只改了组件没动 hook 的定义,那肯定炸。

去原分支找一下 useFetch 定义在哪个文件,看看 main 分支上有没有、版本一不一致。我之前也遇到过,cherry-pick 最坑的就是这种跨文件的隐式依赖,要么把定义 hook 的那个 commit 也一起 cherry-pick 过来,要么手动把 hook 补上。
点赞 1
2026-03-01 09:04