开发者问题收集

reactjs 材质 ui 按钮不起作用

2020-05-21
2240

我试图制作一个简单的 React 天气应用程序,它工作正常但不正确,因为在添加 Material-ui 按钮之前它工作正常,现在只有当我单击 Enter 而不是单击按钮时它才工作,因为 Material-ui const city = e.target.elements.city.value; 此代码根本不起作用 这里的表单组件就像

  return (
    <div>
      <form onSubmit={props.getWeather}>
        <p>Just type the city name </p>
        <p className="check">you must spelling correctly</p>

        <TextField
          id="standard-basic"
          name="city"
          placeholder="City....."
          variant="outlined"
        />
        <Button onClick={props.getWeather} variant="contained" color="primary">
          find
        </Button>
      </form>
    </div>
  );
};

export default Form;

在应用程序组件中

getWeather = async e => {
    e.preventDefault();
    const city = e.target.elements.city.value;
    const api = await fetch(
      `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${API_KEY}`
    );
const data = await api.json();
1个回答

从按钮中删除 onClick 处理程序并添加 type="submit",因此它在单击 Enter 和单击按钮的情况下都可以工作:

<Button type="submit" variant="contained" color="primary">
   find
</Button>

仅当您的按钮位于 <form> 层次结构中时,它才会工作 type="submit" 只是提交表单。

Muhammad Ali
2020-05-21