小编Ed *_*ams的帖子

反应高阶组件-从包装器组件中调用包装组件中的函数

假设我使用的是正确的模式,那么我希望能够从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

javascript reactjs higher-order-components

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

在React中动态设置属性键(例如data- {foo} ="bar")

如果您知道密钥,则在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等)

javascript reactjs skrollr

4
推荐指数
1
解决办法
443
查看次数

将javascript对象写入节点中的文件

如何使用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}

javascript node.js

4
推荐指数
1
解决办法
5822
查看次数

添加回调到Redux Reducer

是否有任何错误/反模式(在' 思考反应/减少 '方面)添加回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)

callback reactjs redux

3
推荐指数
2
解决办法
5528
查看次数

Ramda:mergeDeepRight + mergeAll(...也许mergeDeepRightAll)

当前在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 } } …

javascript functional-programming ramda.js

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