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

onClick不会呈现新的react组件。

雍志新
2023-03-14
问题内容

我是新来的世界,我有这样的话:

<Button onClick={() => console.log("hello")}>Button</Button>

然后单击,您将被hello打印在控制台上。现在将行更改为:

<Button onClick={() => <NewComponent />}>Button</Button>

现在点击该按钮,我希望它NewComponent会被渲染。但事实并非如此。

我不确定为什么会这样。请注意,我在render方法中有上面的代码。


问题答案:

您可能希望有一个状态组件,该状态组件在单击按钮之后在按钮旁边显示另一个组件。您需要做的就是跟踪按钮是否被单击:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      showComponent: false,
    };
    this._onButtonClick = this._onButtonClick.bind(this);
  }

  _onButtonClick() {
    this.setState({
      showComponent: true,
    });
  }

  render() {
    return (
      <div>
        <Button onClick={this._onButtonClick}>Button</Button>
        {this.state.showComponent ?
           <NewComponent /> :
           null
        }
      </div>
    );
  }
}


 类似资料:
  • 所以基本上,当我尝试从其中一个路由更改路由时,我调用this.props.history.push('/newPath')。浏览器url的变化,但是新的路径没有得到匹配(我假设),因为渲染功能的相同组件被调用,没有什么变化。. 指数带路由器的tsx: 我尝试从中导航的组件使用connect函数连接到redux存储。我曾尝试将其包装到withRouter()HOC中并删除连接,但没有成功。我正在调用

  • 问题内容: 我要说的是今天要学习react和redux,但是我不知道如何在状态更改后强制组件重新渲染。 这是我的代码: 我可以触发更新的唯一方法是使用 在构造函数内部,以便我手动触发组件的更新状态以强制重新渲染。 但是如何链接存储状态和组件状态? 问题答案: 仅当组件的状态或道具发生更改时,组件才会重新渲染。您不是依靠this.state或this.props,而是直接在render函数中获取存储

  • 我是一个初学者React开发人员,我对这个特定的代码片段有一个问题。 问题: 虽然我直接复制了虚拟数据的值并将其作为单独的子项呈现,但并不是所有的虚拟数据都被呈现 我特意选择使用useRef而不是useState,因为在用户添加或编辑他们想要的任何链接之后,我想将keyRef发送到NoSQL数据库;然而,当我使用useState()时,它给了我陈旧的状态问题,其中包含所有链接的数组没有不断更新。

  • 我将2个值传递给子组件: 要显示的对象列表 删除函数。 我使用.map()函数来显示我的对象列表(就像react教程页面中给出的示例),但是该组件中的按钮在呈现时激发函数(它不应该在呈现时激发)。我的代码如下所示: 我的问题是:为什么函数在render时触发,以及如何使它不触发?

  • 是否有系统的方法来调试导致组件在React中重新呈现的原因?我放了一个简单的console.log()来查看它呈现多少次,但很难弄清楚是什么导致组件呈现多次,即在我的情况下(4次)。是否存在显示时间线和/或所有组件、树呈现和顺序的工具?