Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么我的输入字段不允许我编辑内容?_Html_Reactjs - Fatal编程技术网

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 }));
 };