You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React值交换功能正常但第二个输入框初始值未设置如何解决?

问题根因

你的代码存在属性名大小写不匹配的错误:

  • App组件给Content组件传参时用的属性名是lastName(N为大写)
  • Content组件解构props时写的是lastname(n为小写)

二者命名不一致导致解构出来的lastname为undefined,所以第二个输入框没有初始值,你的交换功能逻辑本身没有问题。

修复方案

只需要将Content组件的props解构语句调整为和传参属性名完全一致即可,修改后的完整代码如下:

import React, { useState } from "react";
import "./App.css";

function Content(props) {
  // 修正lastname的大小写为lastName,和传参属性名匹配
  const { firstName, lastName } = props;
  const [text1, setText1] = useState(firstName);
  const [text2, setText2] = useState(lastName);

  return (
    <div className="content">
      <input
        type="text"
        onChange={function (event) {
          setText1(event.target.value);
        }}
        value={text1}
      />

      <input
        type="text"
        onChange={function (event) {
          setText2(event.target.value);
        }}
        value={text2}
      />

      <button
        onClick={function () {
          setText1(text2);
          setText2(text1);
        }}
      >
        SWAP
      </button>
    </div>
  );
}

function App() {
  return <Content firstName={"First Name"} lastName={"Last Name"} />;
}

export default App;

小提示:JavaScript中的属性名、变量名都是大小写敏感的,定义和使用时要注意拼写、大小写完全匹配,可以避免这类隐式错误。

内容的提问来源于stack exchange,提问作者Ruturaj Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:39:01