我有一些表格的受控组件文字输入:
<input type="text" onChange={(e) => this.props.changeBusiness(e)}/>
我还想在单独的组件中渲染(上面)文本输入 - 但是!如果我可以使用COMPLETED文本输入来呈现它(在我看来),那将会是更好的感觉。
onBlur
被触发的处理程序。丹科
答案 0 :(得分:1)
如果您想延迟渲染,则需要在渲染中根据标志返回null。假设您有一个状态变量inputBlurred
,您可以将其作为道具传递给其他人。
render() {
if (!this.props.inputBlurred) return null;
... more here
}
你会这样使用它。
class ParentComponent extends Component {
constructor() {
super();
this.state = {inputBlurred: false}
}
handleBlur = (e) => {
if(e.target.value){
this.setState({inputBlurred: true});
}
}
render() {
return(
<div>
<input onBlur={this.handleBlur} />
<ChildComponent inputBlurred={this.state.inputBlurred} />
</div>
)
}
}
答案 1 :(得分:1)
你有几个可能性。
围绕Input
组件创建自定义input
包装,它会触发&#34;更改&#34;活动在&#34;完成&#34;改变 - 例如在模糊。在您输入内容时,父组件不会收到增量onChange
事件。
从父级传递,将onBlur
处理程序传递给子级input
组件,并在触发onBlur
处理程序时尽快在任意位置呈现输入值。< / p>