簡體   English   中英

從按鈕點擊重置

[英]Reset from on button click

我試圖在單擊按鈕時重置值,但無法這樣做。 不知道是什么問題。

這是我的表單字段之一:

       <Grid item xs={5} md={5} lg={5}>
          <InputLabel htmlFor="outlined-adornment-fName" required>
            First Name
          </InputLabel>
          <FormControl
            className={classes.formControl}
            variant="outlined"
            size="small"
          >
            <OutlinedInput
              id="outlined-adornment-fName"
              placeholder="First Name"
              defaultValue={firstName}
            />
          </FormControl>
        </Grid>

這就是我設置表單值的方式:

const [firstName, setFirstName] = React.useState('M');

這是我的重置功能:

const handleClick = () => {
    setTimeout(() => {
      setFirstName('');
    }, 1000);
  };

這是我的重置按鈕:

            <Button
              variant="contained"
              color="primary"
              onClick={handleClick}
              classes={{ root: classes.textTran }}
              style={{
                display: 'flex',
                width: '35%',
                textTransform: 'none',
                borderRadius: 20,
              }}
            >
              Reset
         </Button>
const handleClick = () => {
    setTimeout(() => {
      setFirstName(() => "");
    }, 1000);
  };

試試這個

您只提到了defaultValueOutlinedInput 添加valueonChange屬性,以便反映新的模型更改。 您可以刪除setTimeout函數。

 const handleClick = () => { setFirstName(''); }

 <OutlinedInput id="outlined-adornment-fName" placeholder="First Name" value = { firstName } onChange={e => setFirstName(e.target.value)} />

我相信這里的問題是您將輸入的默認值設置為狀態變量,但在運行時輸入字段不跟蹤狀態。 輸入的值必須設置為相應的狀態變量,並且必須設置 onChange-call 以更新該特定變量。 看下面的原始例子,

const DemoForm = () => {
  const [value, setValue] = React.useState('')

  const handleChange = (event) => setValue(event.target.value)  
  const handleReset = () => setValue('')

  return(
    <>
      <form>
        <input value={value} onChange={handleChange} />
      </form>
      <button onClick={handleReset} >Reset</button>
    </>
}

這將導致狀態在每次輸入更改時更新,並使用更新后的值重新渲染輸入,當重置按鈕被單擊時事件,因為它也會更改值。

暫無
暫無

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

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