小编Phi*_*arg的帖子

将道具传递给React Router子路由

我无法克服反应路由器的问题.场景是我需要从子状态组件和路由传递子路由一组道具.
我想做的是通过childRouteApropsA,并通过childRouteBpropsB.然而,我能弄清楚如何做到这一点的唯一方法是传递RouteHandler两者propsA,propsB这意味着每条儿童路线都会获得每个儿童道具,无论其是否相关.这不是一个阻塞问题,但我可以看到我正在使用两个相同组件的时间,这意味着propA上的键将被propB的键覆盖.

# routes
routes = (
  <Route name='filter' handler={ Parent } >
    <Route name='price' handler={ Child1 } />
    <Route name='time' handler={ Child2 } />
  </Route>
)

# Parent component
render: ->
  <div>
    <RouteHandler {...@allProps()} />
  </div>

timeProps: ->
  foo: 'bar'

priceProps: ->
  baz: 'qux'

# assign = require 'object-assign'
allProps: ->
  assign {}, timeProps(), priceProps()
Run Code Online (Sandbox Code Playgroud)

这实际上就像我期望的那样.当我链接到/filters/time我得到Child2渲染的组件.当我去/filters/price我得到Child1组件渲染.问题是,做这个过程,Child1 …

javascript parent-child coffeescript reactjs react-router

24
推荐指数
2
解决办法
2万
查看次数

React PropTypes的多次验证

有没有办法在单个道具上使用多个验证React.PropTypes.特别想要混合自定义验证和库存验证.

我有两个道具,一个对象options和一个字符串value.我想检查这props.value是一个字符串,但也是对象上的一个键.使用coffeescript看起来像:

propTypes:
  options: React.PropTypes.Object.isRequired
  value: (props, propName, componentName) ->
    unless props[propName] of props.options
      new Error('my custom message')
Run Code Online (Sandbox Code Playgroud)

这很好用,但我也想确保我的值是一个字符串类型.我敢肯定我可以手动坚持自定义功能验证没问题,但理想情况下,我只想使用React.PropTypes.string.isRequired.香港专业教育学院尝试将其放入自定义功能并执行它,但这不起作用.以下也不起作用:

  value: React.PropTypes.string.isRequired && (props, propName, componentName) ->
    unless props[propName] of props.options
      new Error('my custom message')
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个工作使用内置验证器的反应,或者在我的函数中重写它唯一的选择?

javascript coffeescript reactjs react-proptypes

6
推荐指数
1
解决办法
7560
查看次数

在 github 页面上的 repo 中获取音频文件

我在 github 页面上托管一个项目,并想通过 html5<audio>元素播放位于我的存储库中的音频文件。当我在我的开发环境中获取它时,音频播放正常,但是当我推送到 gh-pages 时,我收到一个 404 控制台错误,无法找到它。

<audio ref='themeSong' src="vendor/assets/music/Tetris.mp3" autoPlay loop></audio>
Run Code Online (Sandbox Code Playgroud)

错误:

GET http://myName.github.io/vendor/assets/music/Tetris.mp3 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

我试过采购它:

"vendor/assets/music/Tetris.mp3"
"/vendor/assets/music/Tetris.mp3"
"http://github.com/myName/myRepo/vendor/assets/music/Tetris.mp3"
"http://github.com/myName/myRepo/tree/master/vendor/assets/music/Tetris.mp3"
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果。

html html5-audio github-pages

5
推荐指数
1
解决办法
5601
查看次数