2017-08-09 17 views
1

我一直就像阵营文档编写的标准方式控制的TextField组件:如何创建受控的Fabric UI TextField组件?

handleChange(event) { 
    this.setState({ 
      text: event.target.value 
    }); 
} 

<TextField label='Enter Text' value={this.state.text} onChange={this.handleChange}/> 

上面的代码是我使用过的东西,但似乎它不会改变反应组件的状态,因为如果我更改了受控复选框,它将以相同的形式重置文本字段为空。如果我使用标准的html输入元素,它就像预期的那样工作,并且不清除该字段。

我在这里做错了什么? TextField的工作方式与文本类型输入不一样吗?

+0

把'console.log(event.target.value)'放在handleChange函数中并检查值,它应该可以工作。 –

+0

试过,由于某种原因,它不起作用。 –

+0

它打印的值是多少? –

回答

3

docsonChange不是属性。改为使用onChanged。请注意,返回值是文本字段的值,而不是事件。

+0

谢谢,我在10分钟前计算出了我正在回答的过程中,但是你的速度更快,所以我会接受它 –

+0

哇,这让我永远找不到它。 C learer ... –

1

根据这一example

handleChange(value) { 
 
    this.setState({ 
 
      text: value 
 
    }); 
 
}

+0

不起作用,另外我没有看到一个控制TextField的例子,在问这个问题之前我已经看过这个例子,我尝试过实现类似的问题一个复选框,但微软提供了一个适当的例子:https://github.com/OfficeDev/office-ui-fabric-react/blob/master/packages/office-ui-fabric-react/src/components/Checkbox/examples /Checkbox.Basic.Example.tsx,但不幸的是对于TextField,我没有找到解决方案。 –

+0

你是否已将'handleChange'绑定到你的组件? –

+0

是的,我有(在初始化状态'this.handleChange = this.handleChange。绑定(这个)') –