问题标签 [martyjs]

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.

0 投票
3 回答
801 浏览

javascript - State null in component

I'm having an issue with creating a component using react and martyjs. I'm sure it is a typo or something but I just can't seem to find it. Although I have a state mixin in the component the state is not being populated and it doesn't look like getState is even being called in the mixin.

Mixin.es6

State.es6

Component.es6

Any idea what I'm doing wrong?

Edit: I've added a js bin thing here

http://jsbin.com/lekegicumo/2/edit?html,js,console,output

0 投票
2 回答
322 浏览

reactjs - 如何使用 martyjs 容器?

我刚开始使用martyjs,我面临的问题是我无法从 marty 组件容器中渲染 React 组件。Store 似乎可以工作,但martyjsStore 更改后组件容器不会更改。我需要一些关于应该写什么console.log来使这段代码工作的指导。

这是我当前的代码:

在此需要对此问题进行一些澄清。

0 投票
1 回答
555 浏览

reactjs - 在 UI 中处理操作成功/错误的“通量”方式

以重置密码为例。用户会看到一个表单,要求他们输入电子邮件。他们提交表单,以便在电子邮件中向他们发送重置链接。提交触发一个动作,该动作发出一个 POST/api/password/reset并返回成功或失败。

显然我想更新 UI,以便用户知道发生了什么。Flux 的方式是让动作调度一个常量,例如PASSWORD_RESET_SUCCESS,存储侦听调度程序,以便它们可以更改状态。组件侦听商店,以便在商店状态更改时更改 UI。

在密码重置的情况下,我真的看不出有一种明智的方式来让这个通过商店运行(这样做似乎很冗长)。唯一的状态变化似乎与该表单/组件直接相关。用户离开该页面后,无需保留任何内容。

  • 让组件直接监听调度程序是“flux-y”吗?
  • 商店是否有合理的设计,允许我处理此类不直接链接到应用程序中的模型的通用事件?

非常感谢!

(这与在https://github.com/mwillmott/techbikers上工作有关,以防有人感兴趣)

0 投票
1 回答
2694 浏览

express - 为什么我们需要在 express.js 服务器上使用代理才能获得与 react-routing 相结合的 webpack 热重载服务器功能

可选信息:我正在尝试使用marty.jswebpack 开发服务器构建这个项目,允许入口点来自,允许来自react-router 的以便它不仅仅在 \ 路径中工作。

因此,我整天都在研究这个堆栈溢出答案,但我无法理解以下代码背后的逻辑以及为什么这个答案有效。

retozi 回答:

我设置了一个代理来实现这一点:

您有一个常规的快速网络服务器,它在任何 > 路由上为 index.html 提供服务,除非它是资产路由。如果它是资产,则请求被代理到 web-dev-server

您的 react hot 入口点仍将直接指向 webpack 开发服务器,因此热重载仍然有效。

假设您在 8081 上运行 webpack-dev-server,在 8080 上运行您的代理。

我的代码现在看起来像这样,但为了让它工作,我稍后需要实现marty-express。为了实现这一点,我必须首先了解 retonzis 的答案。

express.js 文件

要求

代理人

马丁特快**

我打算在理解这个例子后立即使用它,我只是希望它将反应路由传递给 express。**

表达东西

2台服务器 webpack-dev-server 和 express

有人可以像我昨天从火星下来一样向我解释这个概念吗?

我不明白两件事:

  1. 为什么我们需要代理
  2. 如何将 react-routes 传递给 express,以便在被询问时在每条路线上为它们提供服务。 (也许marty-express可以帮助我们完成这项任务,但我猜我们可以在没有它的情况下手动完成)

呸...帮助我摆脱这种文档稀缺地狱!请大方地回答。请记住,我昨天刚从火星来。

谢谢..!

0 投票
1 回答
161 浏览

javascript - 如何使用 Flux 处理有状态的 DOM 元素

我正在构建一个包含 HTML5 标签的 React 媒体播放器组件,<video>我想知道该标签及其 DOM 事件如何与 Flux 架构一起使用。

在 Flux 中,组件监听的 Store 是它的真实来源,但是对于一些元素,比如<video>标签,DOM 本身会维护一些状态,比如pausedor currentTime。我如何协调该状态与我的商店的状态?

到目前为止,我有一个Player组件和PlayerStore. 当<video>DOM 事件发生时,我一直在调度 Flux 操作,例如handlePlayhandlePausehandleTimeUpdate以提供对 的更新,PlayerStore以便商店可以保持该状态。同样,我自己的自定义播放器控件调度相同的动作,但我不确定如何“设置”<video>元素的状态,只有当原始事件来自控件而不是<video>事件时;即我不想陷入一个循环,例如:

  1. <video>发送“我的时间码已更改”DOM事件
  2. 组件听到 DOM 事件并分派一个动作
  3. Store 接收到动作并使用新的时间码进行自我更新
  4. 监听 Store 的组件会听到更改并(以某种方式)在<video>元素上设置新的时间码。然而,没有理由这样做,因为<video>元素已经知道了这个变化——它是几毫秒前首先触发它的那个!

您将如何处理这样的组件?

0 投票
1 回答
238 浏览

reactjs - onClick 事件不会在我的任何组件中触发

我在玩 MartyJS,marty-express 并做出反应。和以下代码:

并且简单地呈现在另一个组件中,如下所示:

组件渲染得很好。我已经尝试了我能找到的大多数示例,遵循将 React.createClass 重构为 es6 的指南,我完全按照教程中的方式进行操作,但它不起作用......

我的预感开始指向 MartyJS,MartyJS 和 Marty-express 应该进行初始页面加载服务器端渲染,如果我放入 console.log,我的组件构造函数将打印在服务器上,而不是在客户端上。我几乎即将完全放弃服务器端渲染的反应,因为似乎有很多相关的细节并且没有关于它的文档。
有人可以谈谈他们的经历吗?也许指向一些使用 MartyJS w/o SSR 的代码?

谢谢

0 投票
1 回答
98 浏览

react-router - marty.js ApplicationContainer 和 Rect Router 1.0.0 beta

我正在尝试使用 Marty v0.10 和 React Router v1.0.0。React Router 提供的示例似乎不允许在应用程序容器中包装处理程序。React Router 说使用React.render而不是Router.run. 的唯一示例Router.run是在服务器端。

我从 marty.js v0.10 和 React Router v0.13 的实现引发了以下错误:

Invariant Violation: Router.run needs a callback

这是由于Router.run现在需要 3 个参数。我不确定浏览器中的第二个参数应该是什么。

获得这个的任何提示:

与 Rect Router 1.0.0 beta 一起工作?

0 投票
1 回答
64 浏览

express - 您好,我刚刚将使用 MartyJS 通量的 React 从 SSR 更改为客户端渲染,但 react-router 存在问题

因此,正如标题所描述的那样,我正在 github 上的 denlillemand/react 上做一个可用的应用程序。它有一个快速后端,只提供一个简单的 html 模板来导入我的 bundle.js。该应用程序最初渲染得很好,但似乎没有一条路线有效。

以下是涉及的组件:

./Application.js

./components/App.js

./Routes.js

./Router.js

默认路由似乎是唯一有效的路由,因为我点击了 About 组件。这个应用程序在不久前是 SSR 时工作,我有点想知道我是否正确设置了 react-router,但看看 DOCS 似乎我有。