我正在try 获取输入值,并在用户单击提交时将其推送到状态. 但是我很困惑.

const App = () => {
    const [category,setCategory] = useState([])
    return ( 
        <div>
            <input type="text" name="" id="" />
            <button type="submit" >Add</button>
        </div>
     );
}
 
export default App;

我试了很多方法,但就是找不到任何解决办法.

推荐答案

您只需要有另一个存储当前输入值的状态变量.如下所示:

const [categories, setCategories] = useState([]);
const [category, setCategory] = useState('');

const addCategory = () => {
  setCategories([...categories, category]);

  // after pushing the value, you may want to reset the input field
  setCategory('');
};

...
<input value={category} onChange={(e) => setCategory(e.target.value)} />
<button onClick={addCategory}>Add</button>

Javascript相关问答推荐

错误:(0,react__WEBPACK_IMPORTED_MODULE_1__.useSYS State)不是函数或其返回值不可迭代

将音频记录从js发送到activx-web服务器以保存到磁盘

以逗号分隔的列表来数组并填充收件箱列表

如何解决(不忽略)reaction详尽的linter规则,而不会在获取数据时导致无限的reender循环

如何在JavaScript中通过一次单击即可举办多个活动

node TS:JWT令牌签名以验证客户端和后台问题之间的身份验证

如何使用JavaScript将文本插入空div

google docs boldText直到按行执行应用脚本错误

为什么!逗号和空格不会作为输出返回,如果它在参数上?

在JS中拖放:检测文件

使用ThreeJ渲染的形状具有抖动/模糊的边缘

try 使用javascript隐藏下拉 Select

在HTML语言中调用外部JavaScript文件中的函数

如何将数组用作复合函数参数?

Jest toHaveBeenNthCalledWith返回当前设置的变量值,而不是调用时的值

每次重新呈现时调用useState initialValue函数

将嵌套数组的元素乘以其深度,输出一个和

未捕获语法错误:Hello World中的令牌无效或意外

用于部分字符串的JavaScript数组搜索

处理TypeScrip Vue组件未初始化的react 对象