簡體   English   中英

如何通過<form>數據到 React 中的 object 數組</form>

[英]How to pass <form> data to an object array in React

我正在嘗試制作這個簡單的組件,我在輸入框中鍵入一條消息,並且該組件在輸入字段下方的列表中返回消息。 但是,當我單擊提交按鈕時,下面出現的唯一內容是一個空白的項目符號點

import React, { useState } from 'react'

function Form(props) {
    const [message, setMessage] = useState([])

    const addMessageHandler = (event) => {
        event.preventDefault()

        const data = new FormData(event.target);

        const _data = data.get('input')

        setMessage([...message, { id: message.length, value: _data }])
    }

    return (
        <div>
            <form onSubmit={addMessageHandler} id='input'>
                <label>Type a Message</label>
                <input type='text'></input>
                <button type='submit'>Submit</button>
            </form>

            <ul>
                {
                    message.map(msg => (
                        <li key={msg.id}>{msg.value}</li>
                    ))
                }
            </ul>
        </div>
    )
}

export default Form

所有方式都將“id”和“name”屬性添加到輸入字段。

  <label htmlFor="chat_box">Type a Message</label>
  <input type='text' id="chat_box" name="chatbox_input" />

現在您可以訪問e.currentTarget.elements中的輸入元素,只需確保您為input標簽提供了唯一的名稱。

const addMessageHandler = (event) => {
  event.preventDefault()
  setMessage((message) => [...message, { id: message.length, value:  e.currentTarget.elements['chatbox_input'].value }])
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM