微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactJs和Material UI:在没有onChange的情况下从禁用的TextField获取输入值

如何解决ReactJs和Material UI:在没有onChange的情况下从禁用的TextField获取输入值

我无法弄清楚如何从禁用的输入字段中获取预先填充的值。由于该字段已禁用,因此onChange不适用于此处。即使使用TextField的inputRef属性,我也可以触发一个名为getNameInputValue的函数,并且可以通过控制台查看这些值。但是,当我尝试将状态设置为通过props传入的函数时,会得到null值错误

以下是相关代码段:

const getNameInputValue = (id,nameValue) => {
  console.log(id,nameValue.value); //works
  props.getNameValues({ ...nameValues,[id]: nameValue.value }) //doesnt work
}

return (
  <Box>
    <Typography>NAME</Typography>
    <TextField
      id={`name-${index}`}
      disabled
      defaultValue={nameValueComingFromTheLoop}
      variant="outlined"
      inputRef={(inputValue) => getNameInputValue(`name-${index}`,inputValue)}
    />
  </Box>
);

根据要求,在外部组件中定义了getNameValues,这是其定义:

const [nameValue,setNameValue] = useState({});

const getNameValues= (receivednameValuesObj) => {
    setNameValue(receivednameValuesObj);
  };

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。