0

我一直在试图弄清楚如何处理 React Fabric TextFields 中的值变化。问题是每次我设置value属性时,组件都会变成只读的。如果使用defaultValue属性,则一切正常,除了我需要控制此输入。我在 SharePoint 框架解决方案中使用 React Fabric。

我目前拥有的是这样的:

  ...

  this.state = {
    title: ''
  }

  this.handleInputChange = this.handleInputChange.bind(this);
}

public handleInputChange(id, value) {
  this.setState({
    [id]: value
  });
}

public render(): React.ReactElement<IQuoteAppProps> {
  return (
    <TextField
      label='Title'
      onChanged={(value) => this.handleInputChange('title', value)}
      value={this.state.title}
      required
     />
   )
}

有谁知道如何正确设置它?我还包括了两个屏幕截图。

编辑:我从下面提到的开发人员页面中复制并粘贴了一个示例,但它仍然无法正常工作。他们网站上的组件运行良好,可以编辑。我现在唯一想到的是 React Fabric 是否没有与 SharePoint 框架内的某些内容发生冲突。

Office UI Fabric 文本字段:https ://developer.microsoft.com/en-us/fabric#/components/textfield

React 开发工具截图 HTML 元素检查器截图

4

2 回答 2

0

创建一个新的 SPFx 项目并在那里进行测试后,一切正常。我决定删除node_modules文件夹并运行npm install从头开始​​安装所有包。它神奇地开始工作。

有人知道究竟是什么原因造成的吗?

于 2018-02-08T10:38:16.477 回答
-1

这应该是由你的 handleInputChange 函数引起的,因为你没有更新 TextField 值,你可以向这个函数插入一个警报,你会看到输入的新键。 在此处输入图像描述

于 2018-02-08T08:32:08.180 回答