在使用React和Redux进行表单编辑时,显示输入中的当前值通常涉及到以下几个基础概念:
任何需要管理复杂状态的表单应用都可以使用React和Redux。例如,用户注册表单、商品编辑表单等。
以下是一个简单的示例,展示如何使用React和Redux来显示输入中的当前值:
// store.js
import { createStore } from 'redux';
const initialState = {
inputValue: ''
};
function reducer(state = initialState, action) {
switch (action.type) {
case 'UPDATE_INPUT_VALUE':
return { ...state, inputValue: action.payload };
default:
return state;
}
}
const store = createStore(reducer);
export default store;
// FormComponent.js
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
function FormComponent() {
const inputValue = useSelector(state => state.inputValue);
const dispatch = useDispatch();
const handleChange = (event) => {
dispatch({ type: 'UPDATE_INPUT_VALUE', payload: event.target.value });
};
return (
<div>
<input type="text" value={inputValue} onChange={handleChange} />
<p>Current Value: {inputValue}</p>
</div>
);
}
export default FormComponent;
// index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import store from './store';
import FormComponent from './FormComponent';
ReactDOM.render(
<Provider store={store}>
<FormComponent />
</Provider>,
document.getElementById('root')
);
问题:输入值没有实时更新。
原因:可能是由于状态更新没有正确触发组件重新渲染,或者事件处理函数没有正确连接到Redux dispatch。
解决方法:
useSelector
来从Redux store中获取最新的状态。dispatch
来更新状态。通过以上步骤,你应该能够在使用React和Redux编辑表单时正确显示输入中的当前值。
领取专属 10元无门槛券
手把手带您无忧上云