如何以编程方式填充React的输入字段值?
问题描述:
我有一些输入字段的模态。我可以很容易地与用户键入的输入自动传递所述数据,在输入字段中使用onChange
函数,如如何以编程方式填充React的输入字段值?
<Input onChange={this.props.store.handleCategoryChange} type="text" />
和..(使用mobx商店虽然irellevant)
@observable categoryValue;
@action handleCategoryChange = (e, data) => {
this.categoryValue = data.value;
e.preventDefault();
};
然而,我想添加一个功能,用户可以在应用程序中的其他位置预先填充此信息。我有数据预填充输入字段,但我不知道如何实际输入编程方式,没有用户这样做?
我需要调用上面的handleCategoryChange
函数。但我的变量将等于data.value
..这就出现了一个问题!我自己调用这个函数是不可能的,因为我将不会有事件e
也不会有一个名为data.value
的值,因为我将“只”传递一个变量本身。
在其他地方使用变量,在React中自动以编程方式填充输入字段的正确方法是什么?我需要以某种方式调用onChange
功能,但输入的值会有所不同..
答
针对这种情况使用controlled component,定义input element
一个value
属性是这样的:
<Input value={variable_name} ....
每当你将更新变量,该值将自动填充到输入元素中。
现在,您可以通过为variable_name
分配一个值来填充某个默认值,并且用户可以通过onChange
函数更新该值。
作为每DOC:
输入表格元素,其值由这种方式 阵营控制被称为“控制部件”。
答
您可以使用受控组件并将值传递给它。
<input type="text" value{this.state.value}
onChange={()=> {this.setState({value:e.target.value })}}
答
<input type="text" value{this.state.value} onChange={(e) => {this.setState({value:e.target.value })}/>
使用'input'元件来控制,定义与'这样input'元件的'value'属性:'
我明白了,所以基本上有一个空变量,如果我需要编程改变?否则,让它为空,以便用户可以更改它? – cbll
刚刚尝试过 - 像魅力一样,感谢,只需将我的商店中的'categoryValue'绑定到值!谢啦。 – cbll