javascript - 有没有办法只在完整输入后才渲染?延迟 render() - ReactJS

标签 javascript reactjs

我有一些表单的受控组件文本输入:

<input type="text" onChange={(e) => this.props.changeBusiness(e)}/>

我还想在单独的组件中呈现(以上)文本输入 - 但是!如果我可以使用已完成的文本输入来渲染它以提供(在我看来)更好的感觉,那就太好了。

  • 如何实现?我假设我可以有一个 onBlur 被触发的处理程序。
  • 有什么方法可以延迟 render() 直到完成文本输入后才执行?

蛋壳

最佳答案

是的,如果您想延迟渲染,您只需要根据标志在渲染中返回 null 即可。假设您有一个状态变量 inputBlurred,您将它作为 prop 传递给其他东西。

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>
        )
    }
}

关于javascript - 有没有办法只在完整输入后才渲染?延迟 render() - ReactJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44347565/

相关文章:

reactjs - React Open Graph Preview 在 Facebook 调试器中不起作用

javascript - React 中 useCallback/useMemo 的作用是什么?

java - 正则表达式查找所有带有 http url 的 img 标签

javascript - 如何创建一个选择另一个对象并在浏览器中刷新的函数

javascript - 如何在动态div结束时停止滚动

javascript - 将 ember-data 与自定义序列化器一起使用

reactjs - react native 。无法从 map 函数内设置引用

javascript - NextJS 中 __webpack_require__ 中的构建错误

javascript - HTML5 Canvas 物理

javascript - 选择下拉列表不绑定(bind)值