Html 为什么我的输入字段不允许我编辑内容?
我无法在浏览器中更改此输入字段的值Html 为什么我的输入字段不允许我编辑内容?,html,reactjs,Html,Reactjs,我无法在浏览器中更改此输入字段的值 <div> cart.products.map((item) => ( <div className="" key={item.product._id}> <div className={`${styles.quantity} col-6 d-flex justify-content-around align-items-center col-md-2
<div>
cart.products.map((item) => (
<div className="" key={item.product._id}>
<div
className={`${styles.quantity} col-6 d-flex justify-content-around align-items-center col-md-2
d-md-block mb-2 mb-md-0`}>
<input
className="form-control-sm text-center mb-2"
type="number"
name="quantity"
value={item.quantity}
onChange={(event) => handleChange(event.target)}
/>
</div>
</div>
)
</div>;
}
手柄更换:
const handleChange = (event.target) => {
const { name, value } = event.target;
setQuantity(value);
};
从减速器中制作一个大车的深度副本,从而为组件提供其自己的大车副本
useEffect(() => {
getCart(cartIn);
}, [cartIn]);
const [cart, setCart] = useState({});
const getCart = (cart) => {
setCart(JSON.parse(JSON.stringify(cart)));
};
减速器代码:
export const CartReducer = (state = initialState, { type, payload }) => {
switch (type) {
case ReducerTypes.SET_CART:
console.log("cart", payload);
const subtotal = computeSubtotal(payload);
addCartToLocalStorage(payload, subtotal);
return {
...state,
cart: payload,
subtotal: subtotal,
numberOfItems: payload.products.length,
};
}
};
使用event.target分解结构示例:
const handleChange = (event) => {
const { name, value } = event.target;
setUserData((prevState) => ({ ...prevState, [name]: value }));
};
你能把
handleChange
的代码贴出来吗?我有。handleChange没有做任何事情:consthandlechange=(target)=>{};这就是为什么您的输入没有更新。在onChange期间,您必须调用更新redux存储中item.quantity值的操作。问题不是我无法更新redux,而是我无法在浏览器中更改输入值。我已经通过以下操作断开了cart与redux的连接:JSON.parse(JSON.stringify(cart)),在这种情况下,它与redux无关,但问题仍然存在。是的。这听起来像是你的问题吗?您尝试在输入中键入一些内容,但没有显示任何内容。如果这就是您所经历的,那是因为redux存储中的值从未从文本框接收更新。onChange处理程序必须将键入的更改发送到redux,以便存储值可以得到更新,从而在屏幕上刷新。
const handleChange = (event) => {
const { name, value } = event.target;
setUserData((prevState) => ({ ...prevState, [name]: value }));
};