【发布时间】:2016-02-20 10:58:18
【问题描述】:
我有一个 React 视频组件,它呈现:
<video autoPlay loop poster={this.props.poster}>
<source src={this.props.video} type="video/mp4" />
</video>
作为我的路由组件的子组件:
var Login = require('./containers/Login/Login.jsx');
var ForgotPassword = require('./containers/Login/ForgotPassword.jsx');
[
<Route path="/login" component={Login} />,
<Route path="/login/forgot-password" component={ForgotPassword}/>
]
当更改路由时,视频组件会重新渲染,我会在浏览器上看到重新加载 flash,同时视频会重新启动。 有什么方法可以避免在路由时重新渲染视频组件?
我设法通过在两条路线中使用相同的组件来使其工作, 并通过引用 url 来更改 UI。
我失去了解决此问题的组件事件(componentWillUnmount、componentWillMount 等)
将不胜感激任何帮助, 谢谢
【问题讨论】:
-
可能你正在寻找 shouldComponentUpdate 方法Link is here
-
很难弄清楚 * shouldComponentUpdate*... 的 es6 语法,感谢您的帮助
-
我添加了一个答案,您可以查看它。
标签: reactjs html5-video react-router