Cannot call another worklet from worklet
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- babel, react-native, typescript
调研方向
Reproduce the nested-worklet case with react-native-worklets-core 0.2.4 and react-native-reanimated 3.5.4, then compare it with the version where the worklet is hoisted. Inspect the Babel transformation and determine why an inlined worklet passed between contexts fails; done means the nested example runs correctly without requiring the workaround.
由索引模型根据 Issue 内容生成。
描述
Calling an inlined worklet from an existing worklet breaks, presumably because of some mistake in the babel plugin.
This code breaks:
const context1 = Worklets.createContext('context1')
const context2 = Worklets.createContext('context2')
const runAsync = Worklets.createRunInContextFn((func: () => void) => {
'worklet'
try {
// Call long-running function
func()
} catch (e) {
// Re-throw error on JS Thread
throwJSError(e)
}
}, context2)
const runNormalWorklet = Worklets.createRunInContextFn(() => {
'worklet'
console.log('running from context1!')
runAsync(() => {
'worklet'
console.log('running from context2!')
})
}, context1)
runNormalWorklet()
But when we lift out the nested worklet function outside from the existing worklet, it works:
+ const fn = () => {
+ 'worklet'
+ console.log('running from context2')
+ }
const runNormalWorklet = Worklets.createRunInContextFn(() => {
'worklet'
console.log('running from context1!')
- runAsync(() => {
- 'worklet'
- console.log('running from context2!')
- })
+ runAsync(fn)
}, context1)
I'm guessing this is an incompatibility with the Reanimated plugin again.
"react-native-worklets-core": "0.2.4",
"react-native-reanimated": "^3.5.4",
- 主要语言
- C++
- 星标
- 792
- 派生
- 65
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
margelo/react-native-worklets-core 的其他 Issue
-
难度 5/5 一周以上 新手友好度 35/100
margelo/react-native-worklets-core#271 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
margelo/react-native-worklets-core#269 · 2 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 35/100
margelo/react-native-worklets-core#268 · 2 条评论 ·
-
难度 3/5 1-2 天 新手友好度 72/100
margelo/react-native-worklets-core#267 · 1 条评论 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 45/100
margelo/react-native-worklets-core#266 · 1 条评论 · 2 个 reaction ·
查看 margelo/react-native-worklets-core 的全部 Issue
相似的 Issue
-
component: split-view platform: windows
难度 2/5 1-3 小时 新手友好度 74/100
zen-browser/desktop#15616 · 1 个 reaction ·
维护者通常 1 天内回复
-
area/ysql kind/bug priority/medium status/awaiting-triage
难度 2/5 1-3 小时 新手友好度 84/100
yugabyte/yugabyte-db#34415 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
WayfireWM/wayfire#3148 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
backend:DirectX
难度 2/5 1-3 小时 新手友好度 84/100
llvm/llvm-project#227530 ·
维护者通常 1 天内回复