javascript - 在 onChange 事件之后有条件地渲染子组件

标签 javascript reactjs parent-child onchange parent

我正在尝试与子组件通信,但仅遵循 onChange事件<input> html 元素。谁能向我解释为什么这两个组件似乎没有通信,以及为什么子组件中的 console.log 没有显示?

家长

import React from 'react';
import FileUpload from './FileUpload'


class App extends React.Component {

    callChild = ()=>{

        return (
            <FileUpload displayOnUpload = {this.displayOnUpload} test = 'passed succesfully'/>  

        )   

    }

    render(){

        return ( 
            <div>

                <input 
                    type="file"
                    id = "my-file"
                    multiple 
                    onChange = {()=>this.callChild()} 
                />                                    


            </div>

        )
    }

}

export default App

child

const FileUpload =  (props)=> {
        console.log(props.test)


    return (
        <div>
            hi
        </div>
    )

}

export default FileUpload

最佳答案

onChange 将调用方法(函数),但不会呈现任何内容。您可以使用状态有条件地渲染组件。

import React from 'react';
import FileUpload from './FileUpload'


class App extends React.Component {

    state = {
        fileChanged = false
    }

    callChild = ()=>{
        this.setState({ fileChanged: true })
    }

    render(){

        if (this.state.fileChanged) {
            return <FileUpload displayOnUpload = {this.displayOnUpload} test = 'passed succesfully'/>
        }

        return ( 
            <div>

                <input 
                    type="file"
                    id = "my-file"
                    multiple 
                    onChange = {()=>this.callChild()} 
                />                                    


            </div>

        )
    }

}

export default App

关于javascript - 在 onChange 事件之后有条件地渲染子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57261036/

相关文章:

html - 如果在 css 中有指定的子项,则更改父样式

javascript - 如何使用 JQuery 将 HTML 表格转换为列表?

javascript - 将 native 事件处理程序附加到 React 组件

javascript - 在 TypeScript 中以不同方法访问变量

javascript - react 图像未在多站点页面上加载

javascript - 在输入元素上键入时我的状态没有更新

json - Jq:如何将子成员移动到父成员?

javascript - 如何在不更改其子元素的情况下更改元素 innerText

javascript - 如何在 Google map 信息窗口中添加地点自动完成框?

javascript - JQPlot - 在 pointLabels 标签中显示实际输入值而不是点位置