- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试找出 Ember 组件无法正常工作的原因(并尝试了解流程中的组件生命周期)。有问题的组件是 Ember-cli-mapbox .它使用嵌套组件。您可以拥有一个 mapbox-map
组件,并且在该组件内您可以拥有多个 mapbox-marker
组件。现在,它应该如何工作,是 mapbox-map
组件初始化 map ,然后将一个 block 传递给子标记组件。然后子标记组件引用传递给它们的 map 。使用中的组件示例(来自组件文档):
{{#mapbox-map mapId='ember-cli-mapbox.7c3914f2' as |map|}}
{{#each positions as |position|}}
{{mapbox-marker map=map coordinates=position.coordinates}}
{{/each}}
{{/mapbox-map}}
现在,使用 didInsertElement
Hook 设置组件,这对我来说很有意义,因为 DOM 需要在 mapbox-map
组件可以绑定(bind)之前就位到dom中的一个元素。它不是那样工作的。子组件的 didInsertElement
在父组件的 didInsertElement
钩子(Hook)之前执行。因此,标记会尝试在创建之前引用 map 。我通过将 console.log
放在组件初始化代码中来解决这个问题。我找不到太多关于组件生命周期的文档。 didInsertElement
确实在 API 文档中被引用 here ,但似乎最新的 API 文档实际上已经过时并且没有引用描述的一堆其他 Hook here .后一个链接表示生命周期事件按以下顺序发生:
didInitAttrs
didReceiveAttrs
willRender
didInsertElement
didRender
现在,事情变得奇怪了。当我用 didInitAttrs
替换组件中的 didInsertElement
时,它会以正确的顺序触发。父组件上的 didInitAttrs
Hook 首先触发,然后是子组件 didInitAttrs
Hook 。问题是,DOM 还没有准备好,所以它没有多大帮助。我也不能将 map 绑定(bind)事件放在 Ember runloop 中,因为它需要返回并作为一个 block 传递给子元素。
所以,我的问题是:
didInsertElement
时, Hook 会按照它们执行的顺序执行? ( child ,然后是 parent )我在 Ember Twiddle here 中重新创建了插件.子 Hook 在父 Hook 之前被调用,导致组件中断,因为 map
在调用 Hook 时未定义。这发生在 Ember 1.13.8 和 1.13.9 上。
最佳答案
Why, when using didInsertElement on components, do the hooks get executed in the order they do? (children, then parents)
这在 1.8 版中已更改。以前是 parent ,然后是 child ,但这通常需要人们使用一些复杂的方法来等待 child 渲染来做某些事情。改变顺序让学习 Ember 变得更简单。
参见 https://github.com/emberjs/ember.js/issues/5631获取更多信息。
How did this component ever work in the way it's currently written?
我没有使用过这个插件,不知道它是否有效。我修复了你的旋转工作,但是:http://ember-twiddle.com/4c3e55d0a66ead378bdf
Am I supposed to use the above mentioned hooks if they're not mentioned in the official API docs?
这些钩子(Hook)没有被提及,因为文档仍在 catch Ember 的变化。如果您愿意,请随意使用它们。
关于ember.js - 理解和使用 Ember 组件生命周期钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33078118/
问题 我想在可由用户添加的表单中实现输入字段的键/值对。 参见 animated gif on dynamic fields . 此外,我想在用户提交表单并再次显示页面时显示保存的数据。 参见 ani
这个问题已经有答案了: The useState set method is not reflecting a change immediately (19 个回答) 已关闭去年。 问题是,在网页中该
这个问题已经有答案了: The useState set method is not reflecting a change immediately (19 个回答) 已关闭去年。 问题是,在网页中该
我对钩子(Hook)相当陌生,我正在尝试实现一个拖放容器组件,该组件在整个鼠标移动过程中处理 onDragStart、onDrag 和 onDragEnd 函数。我一直在尝试使用钩子(Hook)复制此
有人向我介绍了 CSS 钩子(Hook)这个术语,但我对此不是很清楚。你能给我一些想法吗? 什么是 CSS 钩子(Hook)? 最常见的钩子(Hook)是什么? 使用 CSS 钩子(Hook)的最佳做
文档 ( https://devexpress.github.io/testcafe/documentation/test-api/test-code-structure.html#test-hook
问题是包含 PR_Write() 的 DLL 调用的不是 npsr4.dll,而是 nss3.dll 和 Hook 无法从不存在的库中找到 GetProcAddress()。 我正在尝试创建 Fire
我的 git hook 似乎没有工作。即commit-msg来自 gerrit 的钩子(Hook)。 commit-msg Hook 存在于 /.git/hooks/并具有正确的语法。 最佳答案 确保
用gdb调试不熟悉的程序时,程序执行后经常会意外退出next .发生这种情况时,我通常会设置一个断点,重新运行程序并执行 step而不是 next追踪正在发生的事情。但是,有时很难知道在哪里设置断点。
当我创建一个节点时,我希望它以编程方式创建一些引用刚刚创建的节点的节点。 虽然我只需要更改表单的 form_alter 提交函数来调用自定义函数来创建节点。 检查输出 $form_state 我可以看
我是钩子(Hook)的新手,在学习了对类的 react 之后才来,所以有点迷茫。在下面的代码中,我将 setDog 更改为 Husky,然后它应该告诉 API 调用搜索并获取我的哈士奇图片。但是,尽管
我编写(进程中)钩子(Hook)以防止在本地添加 BAD 标记名称: .hg/hgrc : pretag.badtagname = python:.hg/hgcheck.py:localbadtag
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 7年前关闭。 Improve this qu
如果这个问题之前已经得到解答,我提前表示歉意(对于这篇长文,但我已尽力做到具体)。但是,我找到的答案并不完全令我满意。 我想在我的项目中使用新的令人惊叹的 React Hooks。到目前为止我所做的一
通过阅读一些文字,尤其是关于委托(delegate)的iOS文档,所有协议(protocol)方法都被称为 Hook 自定义委托(delegate)对象需要实现。但是其他一些书,命名为 Hook 作为
我的所有依赖项都位于受密码保护的存储库中。 我有一个要求输入用户名和密码的功能,但它经常困扰我。 有没有办法在依赖检索之前执行它? 在大多数情况下,我在本地 maven/gradle 缓存中拥有所有依
当我尝试运行 git commit -m 'message here' 时出现以下错误。 致命:无法执行 '.git/hooks/prepare-commit-msg':权限被拒绝 当我在我的 ubu
当我尝试运行 git commit -m 'message here' 时出现以下错误。 致命:无法执行 '.git/hooks/prepare-commit-msg':权限被拒绝 当我在我的 ubu
我有一个分支和主干的服务器存储库。分支是所有团队成员的存储库。我正在尝试使用 svn hooks仅在我的分支下的 repo 中,但它似乎无法正常工作。以下是我尝试采取的步骤: checkout my_
我正在尝试为我的模块找到一种在安装时创建 anchor 链接的方法。 我目前的策略是创建一个自定义菜单,类似于主菜单、次菜单等并位于其中。在此菜单中,我希望有一个或多个由我的模块定义的链接。然后我希望
我是一名优秀的程序员,十分优秀!