我无法克服反应路由器的问题.场景是我需要从子状态组件和路由传递子路由一组道具.
我想做的是通过childRouteA它propsA,并通过childRouteB它propsB.然而,我能弄清楚如何做到这一点的唯一方法是传递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 …
有没有办法在单个道具上使用多个验证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)
有没有办法让这个工作使用内置验证器的反应,或者在我的函数中重写它唯一的选择?
我在 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)
但似乎没有任何效果。
coffeescript ×2
javascript ×2
reactjs ×2
github-pages ×1
html ×1
html5-audio ×1
parent-child ×1
react-router ×1