在浏览纯函数的定义时,它通常定义为两个特征:
1)在相同输入的情况下应该产生相同的输出
2)不应产生任何副作用
它是否也意味着纯函数不应该是异步的?如果不是,怎么回事?如果是的话,我很乐意在JavaScript中看到异步纯函数的一些例子.
javascript functional-programming purely-functional ecmascript-6
因此,我想向添加到组件的任何子代添加某些样式。比方说,父组件被称为Section和儿童被称为Card在这种情况下。在Section.js我正在尝试:-
renderChildren = () =>{
return React.Children.map(this.props.children, (child, i)=>{
let el = React.cloneElement(child,{
style: {opacity:0.5}
})
return el
})
}
render(){
<ScrollView>
{this.renderChildren()}
</ScrollView>
}
Run Code Online (Sandbox Code Playgroud)
上面的方法对我不起作用。我想知道为什么。还有一种方法可以映射孩子并将它们包装在新组件中吗?像这样的东西;
this.props.children.map(Child => <Wrapper> <Child/> </Wrapper> )
Run Code Online (Sandbox Code Playgroud) 我有一个redux商店.要更改商店中的数据,通常的方法是创建操作,actionCreator,reducer,然后分派操作.对于中小型应用程序,在很多地方进行更改以反映此类更改看起来有点过分.所以我创建了一个通用的reducer,它看起来像这样:
// here state is a copy of actual state, so I can mutate it directly
const reducer = ( state, action) => {
if(action.type == 'SETTER'){
try{
return assign(state, action.data.target, action.data.value )
}
catch(err){
console.log('WARNING: the key wasn\'t valid', err)
}
}
return state;
}
Run Code Online (Sandbox Code Playgroud)
这个assign方法是这样的:
const assign = (obj, prop, value) => {
if (typeof prop === "string")
prop = prop.split(".");
if (prop.length > 1) {
var e = prop.shift();
assign(obj[e] , prop, value);
} else …Run Code Online (Sandbox Code Playgroud)