问题标签 [scalajs-react]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 带有 Scala 的 Jquery 插件
任何人都知道如何在 scala js 代码中使用 jquery 插件bootstrap-multiselect 。
Scala.js 有一个包装了 jquery 的库,我想为 jquery 插件使用类似的静态类型代码
最后我想为这两个中的多选列表创建一个反应组件。任何替代方式也欢迎
谢谢
scala.js - 更新单个子组件
我正在使用带有 scalajs-react 0.11.1 的二极管 1.0.0。
用例:
- 带有子组件列表的父组件
- 子模型片段包含
Pot
用于异步获取的图像 - 子组件在挂载时获取图像并
Pot
更新Empty
其模型片段
使用幼稚的方法,这会导致以下情况(事件的顺序可能不同):
- 父级被渲染。
- 孩子 1 被渲染。
- Child 1 发送它的
GetImageAction
. 模型片段Pot
更新为Pending
. - 模型已更新,导致父级重新渲染。
- 所有的孩子都被重新渲染。
- 孩子 2 ... n 仍然有一个
Empty
Pot
,所以他们GetImageAction
再次触发他们的 s。
- Child 1 发送它的
- 现在孩子 2 被渲染。
- 模型已更新,导致父级重新渲染。
- 等等。
这会导致GetImageAction
调用和重新渲染的巨大树。
一些问题:
- 将模型用于此目的是错误的吗?使用组件状态会更好吗?
- 当只需要更新孩子时,如何避免重新渲染父母?我无法弄清楚我是否/如何可以
shouldComponentUpdate
用于此目的。
更新 1
我现在为每个子组件添加一个 React 键。这摆脱了关于唯一键的 React 警告,但不幸的是并没有解决上述问题。即使他们的shouldComponentUpdate
方法返回,孩子也会被重新渲染false
。
来自ParentComponent.render()
:
更新 2
我尝试在父组件中实现侦听器功能,但不幸的是,子组件仍然被卸载并重新安装。这是我的父组件的代码:
scala.js - SVG 异物内的 HTML 不可见
我在 SVG 上苦苦挣扎,我通过foreignobject
. 这是一个最小的组件:
问题是“Hello”文本不可见。但是,我可以在 Chrome 或 FF 中进行小的空白编辑,然后它变得可见:
更新:这个问题可以用普通的 React 重现,即它不是由 scalajs-react 抽象引起的。我刚刚将其发布为一个新的 SO 问题。
reactjs - 用于 React 的 React API 规则 - 它们在哪里?
React 的 this 的 react api 规则是什么?
我问这个是因为我试图理解这段代码:
写在哪里:
他们指的是什么样的规则?我在哪里可以阅读这些规则?
这是谷歌给出的最接近的东西:
https://facebook.github.io/react/docs/top-level-api.html
这里有规则吗?
还是这个?
scala.js - 在带有 scalajs-react 的 scalajs 中,如何将 scalajs 定义的组件传递给 javascript 定义的组件?
我的问题也在这里: https ://gist.github.com/somanythings/8c3d34de754af311d7826ea837d160b4
在将 scalajs 与 japgolly 的 scalajs-react ( https://github.com/japgolly/scalajs-react ) 库一起使用时。我正在尝试包装网格http://griddlegriddle.github.io/Griddle/customization.html 我想要一个自定义列,为此需要我传递一个包含组件的 columnMetadata 结构。
当我这样做时,我可以渲染一个没有属性的 scalajs 定义的组件,但是如果我尝试通过 renderP 访问属性,或者通过 renderS 访问属性,它们在渲染函数的范围内都是未定义的。如果我在浏览器中调试,它们的名称是绑定的,并且确实具有预期值。
当我打破
然后$.props
是未定义的
我错过了什么?它是 ReactComponentB 调度中的简单输入问题吗?它是否与https://github.com/japgolly/scalajs-react/issues/157有某种关系,而我只是没看到如何?
scala - 展开/脱糖 scala 宏
我正在尝试通过包装现有的 JS-react 组件来编写自己的scalajs-react组件,以便可以从 scala.js 中使用它们。
我试图通过了解如何在这里完成来理解如何做到这一点。
问题是我对宏不是很了解,所以我想在不使用宏的情况下重写这一行。
我怎样才能做到这一点 ?
reactjs - 使用来自 scalajs-react 的高阶反应组件
我正在尝试使用库中的 Scala.js使用这个 更高阶的反应组件。scalajs-react
这是一个关于如何在 JS 中使用该组件的示例:
表达式({value}) => <li>{value}</li>
desugars to(props) => { var value = props.value; return <li>{value}</li> }
和<li>{value}</li>
JSX desugars toReact.createElement("li", null, value );
但问题是我不知道如何将这个表达式 ( React.createElement("li", null, value );
) 翻译成 Scala.JS。
(({value}) => <li>{value}</li>
最终在这里作为一个包装的组件)
我需要在 Scala.JS 中编写什么才能获得等价物React.createElement("li", null, value )
?
概括:
换句话说,如果我在 JS 中编写var element=React.createElement("li", null, value )
并调用了生成的对象element
,那么计算结果为完全相同的element
对象 ( val element = ???
) 的 Scala.JS 表达式是什么?
相关问题在这里。
scalajs-react - scalajs-react 中的无状态反应组件
({value}) => <li>{value}</li>
在 scalajs-react 中编写这个无状态反应组件的最简单方法是什么?
我在网上找到了以下相关链接,但他们没有回答这个问题:
https://gitter.im/japgolly/scalajs-react?at=557e2a0dc030cae67ed3a4c3 https://github.com/japgolly/scalajs-react/blob/master/core/src/main/scala/japgolly/scalajs/react/ReactComponentB .scala#L41 https://gitter.im/japgolly/scalajs-react?at=561705054e0fa3e55447ba98 http://www.gitterforum.com/discussion/japgolly-scalajs-react?page=269 https://gitter.im/ japgolly/scalajs-react?at=57ae33f90fd99f7041367604
这似乎是最接近答案的:
https://gitter.im/japgolly/scalajs-react?at=575347a19be9c5b637f07a00
我不确定这是否是无状态的反应组件。
FunctionalComponent与无状态反应组件相同吗?
好的,似乎是:https ://gitter.im/japgolly/scalajs-react?at=575329dc9be9c5b637f074e8