假设我使用的是正确的模式,那么我希望能够从inside 调用someFunc()(在<Home/>内部)<Wrapper/>。见下文:
var Home = React.createClass({
someFunc() {
console.log('How can I call this from <Wrapper/>?')
},
render() {
return <h1>Hello World</h1>
}
})
var Wrapper = (Home) => {
return React.createClass({
render() {
return <Home {...this.props}/>
}
})
}
var HomeWrapped = Wrapper(Home)
ReactDOM.render(<HomeWrapped/>, document.getElementById('root'))
Run Code Online (Sandbox Code Playgroud)
已更新解决方案:https : //codepen.io/oldgithub/pen/qPOZEj
如果您知道密钥,则在React中设置属性很简单,例如
data-500={this.props.YDistance}
但是如何动态设置密钥的一部分.例如
data-{this.props.YDistance}="valueHere"
var Test = React.createClass({
render: function() {
return (
<div data-{this.props.YDistance}="valueHere">
{this.props.children}
</div>
);
}
});
ReactDOM.render(
<Test YDistance="500">Hello World!</Test>,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
有些库需要这种属性设置(例如skrollr等)
如何使用Node获取一个JS对象(例如var obj = {a: 1, b: 2})并创建一个包含该对象的文件?
例如,以下工作:
var fs = require('fs')
fs.writeFile('./temp.js', 'var obj = {a: 1, b: 2}', function(err) {
if(err) console.log(err)
// creates a file containing: var obj = {a: 1, b: 2}
})
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
var obj = {a: 1, b: 2}
fs.writeFile('./temp.js', obj, function(err) {
if(err) console.log(err)
// creates a file containing: [object Object]
})
Run Code Online (Sandbox Code Playgroud)
更新:JSON.stringify()将创建一个JSON对象(即{"a":1,"b":2}),而不是Javascript对象(即{a:1,b:2})
是否有任何错误/反模式(在' 思考反应/减少 '方面)添加回action.data传到动作?
// reducer
ACTION_FOR_REDUCER() {
var x = 123
if ( action.data.callback ) action.data.callback( x )
return {
something: action.data.somedata
}
},
Run Code Online (Sandbox Code Playgroud)
然后在调用操作时在应用程序中访问该数据(可能在容器中)
// later in the app
this.props.dispatch(changeSomething({
somedata: somedata,
callback: (x) => { console.log(x) }
}))
Run Code Online (Sandbox Code Playgroud) 当前在Ramda中,如果我想深度合并(正确)多个对象...
var a = _.mergeDeepRight( { one: 1 }, { two: { three: 3 } } )
var b = _.mergeDeepRight( a, { three: { four: 4 } } )
var c = _.mergeDeepRight( b, { four: { five: 5 } } )
// c === { one:1, two: { three: 3 }, three: { four: 4 }, four: { five: 5 } }
Run Code Online (Sandbox Code Playgroud)
如果我使用_.mergeAll(即_.mergeAll( a, b, c )),它返回{ one:1, two: { three:3 } } …