如何以编程方式填充React的输入字段值?

如何以编程方式填充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功能,但输入的值会有所不同..

+0

使用'input'元件来控制,定义与'这样input'元件的'value'属性:'

+0

我明白了,所以基本上有一个空变量,如果我需要编程改变?否则,让它为空,以便用户可以更改它? – cbll

+0

刚刚尝试过 - 像魅力一样,感谢,只需将我的商店中的'categoryValue'绑定到值!谢啦。 – cbll

针对这种情况使用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 })}/>