如何从我的组件的渲染函数调用setCounter动作值参数?如何通过参数调用redux动作并从reducer访问?
你如何访问reducer中的动作参数?
// File: app/actions/counterActions.js
export function setCounter(value) {
return {
type: types.SETCOUNTER,
value
};
}
export function increment() {
return {
type: types.INCREMENT
};
}
export function decrement() {
return {
type: types.DECREMENT
};
}
如何检索reducer中的动作参数?
// File: app/reducers/counter.js
export default function counter(state = initialState, action = {}) {
switch (action.type) {
case types.INCREMENT:
return {
...state,
count: state.count + 1
};
case types.DECREMENT:
return {
...state,
count: state.count - 1
};
case types.SETCOUNTER:
return {
...state,
count: value /* How do I access an action argument ?? */
};
default:
return state;
}
}
如何将参数传递给setCounter操作?
File: app/components/counter.js
export default class Counter extends Component {
constructor(props) {
super(props);
}
render() {
const { counter, increment, decrement, setCounter } = this.props;
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Count:{counter}</Text>
<TouchableOpacity onPress={setCounter(99)} style={styles.button}>
<Text>Reset to 99</Text>
</TouchableOpacity>
<TouchableOpacity onPress={increment} style={styles.button}>
<Text>up</Text>
</TouchableOpacity>
<TouchableOpacity onPress={decrement} style={styles.button}>
<Text>down</Text>
</TouchableOpacity>
</View>
);
}
}
我使用这个反例反应学习母语终极版: https://github.com/alinz/example-react-native-redux
这个程序有两个按钮;递增和递减计数器上的调用操作以及计数器值重新呈现。
我想添加第三个按钮来将setCounter设置为任意值。
由于提前,
-Ed 的JavaScript,反应本地的,终极版新手
我不明白的JavaScript语法进行调用setCounter(值),在我看来组件渲染功能?
{setCounter(99)}不起作用?
render(){ const {counter,increment,decrement,setCounter} = this.props;
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Count:{counter}</Text>
<TouchableOpacity onPress={setCounter(99)} style={styles.button}>
<Text>Reset to 99</Text>
</TouchableOpacity>
<TouchableOpacity onPress={increment} style={styles.button}>
<Text>up</Text>
</TouchableOpacity>
<TouchableOpacity onPress={decrement} style={styles.button}>
<Text>down</Text>
</TouchableOpacity>
</View>
);
}
谢谢你的动作和减速例子亚历山大 –