在React Redux中调度一个动作onClick的方法如下:
actions.js
的文件,并在其中定义一个动作类型和相关的数据,如下所示:// actions.js
export const CLICK_BUTTON = 'CLICK_BUTTON';
export const clickButton = () => {
return {
type: CLICK_BUTTON,
payload: 'Button clicked!'
};
};
reducer.js
的文件,并在其中定义一个减速器来处理CLICK_BUTTON
动作,如下所示:// reducer.js
import { CLICK_BUTTON } from './actions';
const initialState = {
message: ''
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case CLICK_BUTTON:
return {
...state,
message: action.payload
};
default:
return state;
}
};
export default reducer;
connect
函数将Redux的状态和动作与React组件连接起来,并将动作作为属性传递给组件。例如,你可以创建一个名为ButtonComponent.js
的文件,并在其中使用connect
函数连接Redux状态和动作,如下所示:// ButtonComponent.js
import React from 'react';
import { connect } from 'react-redux';
import { clickButton } from './actions';
const ButtonComponent = ({ message, clickButton }) => {
return (
<div>
<button onClick={clickButton}>Click me</button>
<p>{message}</p>
</div>
);
};
const mapStateToProps = state => {
return {
message: state.message
};
};
export default connect(mapStateToProps, { clickButton })(ButtonComponent);
Provider
组件包装你的组件,以便将Redux状态传递给所有的子组件。例如,你可以在你的App.js
文件中使用Provider
组件,如下所示:// App.js
import React from 'react';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import reducer from './reducer';
import ButtonComponent from './ButtonComponent';
const store = createStore(reducer);
const App = () => {
return (
<Provider store={store}>
<ButtonComponent />
</Provider>
);
};
export default App;
现在,当你点击按钮时,clickButton
动作将被调度,并且Redux状态将被更新,从而导致ButtonComponent
组件重新渲染并显示更新后的消息。
这是一个基本的示例,展示了如何在React Redux中调度一个动作onClick。根据你的具体需求,你可以根据这个示例进行扩展和定制。
领取专属 10元无门槛券
手把手带您无忧上云