当前位置: 首页 > 面试题库 >

在React中显示或隐藏元素

公良昕
2023-03-14
问题内容

我第一次弄乱React.js,找不到通过click事件在页面上显示或隐藏内容的方法。我没有在页面上加载任何其他库,所以我正在寻找使用React库的本机方法。到目前为止,这就是我所拥有的。当点击事件触发时,我想显示结果div。

var Search= React.createClass({
    handleClick: function (event) {
        console.log(this.prop);
    },
    render: function () {
        return (
            <div className="date-range">
                <input type="submit" value="Search" onClick={this.handleClick} />
            </div>
        );
    }
});

var Results = React.createClass({
    render: function () {
        return (
            <div id="results" className="search-results">
                Some Results
            </div>
        );
    }
});

React.renderComponent(<Search /> , document.body);

问题答案:

大约在2020年做出反应

onClick回调中,调用状态挂钩的
setter函数以更新状态并重新渲染:

const Search = () => {

  const [showResults, setShowResults] = React.useState(false)

  const onClick = () => setShowResults(true)

  return (

    <div>

      <input type="submit" value="Search" onClick={onClick} />

      { showResults ? <Results /> : null }

    </div>

  )

}



const Results = () => (

  <div id="results" className="search-results">

    Some Results

  </div>

)



ReactDOM.render(<Search />, document.querySelector("#container"))


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js"></script>



<div id="container">

  <!-- This element's contents will be replaced with your component. -->

</div>

JSFiddle

反应约2014年

关键是使用来更新点击处理程序中组件的状态setState。应用状态更改后,将render使用新状态再次调用该方法:

var Search = React.createClass({

    getInitialState: function() {

        return { showResults: false };

    },

    onClick: function() {

        this.setState({ showResults: true });

    },

    render: function() {

        return (

            <div>

                <input type="submit" value="Search" onClick={this.onClick} />

                { this.state.showResults ? <Results /> : null }

            </div>

        );

    }

});



var Results = React.createClass({

    render: function() {

        return (

            <div id="results" className="search-results">

                Some Results

            </div>

        );

    }

});



ReactDOM.render( <Search /> , document.getElementById('container'));


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.2/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.6.2/react-dom.min.js"></script>



<div id="container">

  <!-- This element's contents will be replaced with your component. -->

</div>

JSFiddle



 类似资料:
  • 我对React Native非常陌生,我想知道如何隐藏/显示组件 这是我的测试用例: 我有一个组件,我想要的是当输入获得焦点时显示,然后当用户按下取消按钮时隐藏。 我不知道如何“访问”TouchableHighlight组件,以便在我的函数中隐藏/显示它 另外,如何从一开始就隐藏按钮?

  • 问题内容: 按下后如何隐藏“编辑”链接?当我按下编辑键时,是否还可以隐藏“ lorem ipsum”文本? 问题答案:

  • 我正在从命令行用python运行mplfinance。我想隐藏(或不显示)绘图,因为我将绘图另存为一个。jpg。稍后,我将在图像查看器中查看绘图/图形/图像。 问题是,我必须关闭为脚本绘制的每个图像,以便继续定义下一个图。我不想在执行时看到图形,并且必须在脚本循环创建多个图形时关闭每个图像。换句话说就是“火了就忘”。 有没有办法隐藏(或不显示)mplFinance中的情节 谢谢你的帮助。 谢谢,

  • 有没有办法在另一个程序中隐藏窗口或框架?例如,如果你打开了一个Firefox窗口,并且运行了你的程序,那么它会和firefoxFrame一样。setVisible(false),但很明显,我没有对另一个程序框架的引用。然后也许以后,firefoxFrame。setVisible(真)

  • 本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()

  • 我有一个问题隐藏和显示一个元素取决于一个布尔变量在角2。 这是div要显示和隐藏的代码: 变量已“编辑”,并存储在我的组件中: 元素是隐藏的,当saveTodos函数启动时,会显示元素,但3秒钟后,即使变量返回为false,元素也不会隐藏。为什么?