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

在另一个组件中反应JS参考函数

穆宾白
2023-03-14
问题内容

我正在尝试通过另一个组件呈现一个按钮,以引用和/或影响另一个组件的状态。

var Inputs = React.createClass({
  getInitialState: function(){
    return {count: 1};
  },
  add: function(){
    this.setState({
      count: this.state.count + 1
    });
  },
  render: function(){
    var items = [];
    var inputs;
      for (var i = 0; i < this.state.count; i++){
        items.push(<input type="text" name={[i]} />);
        items.push(<br />);
      }
    return (
      <div className="col-md-9">
        <form action="/" method="post" name="form1">
          {items}
          <input type="submit" className="btn btn-success" value="Submit Form" />
        </form>
      </div>
     );
   }
 });

我想编写一个新组件,该组件将能够访问Inputs中的add函数。我试图Inputs.add像这样直接引用它:

var Add = React.createClass({
  render: function(){
    return (
      <input type="button" className="btn" value="Add an Input" onClick={Inputs.add} />
    );
  }
});

但这没有用。如何通过另一个组件访问组件的功能,或者如何通过另一个组件影响组件的状态?谢谢。


问题答案:

您可以通过创建一个负责管理状态的父组件来完成此任务,然后将状态作为道具向下推到子组件。

/** @jsx React.DOM */

var Inputs = React.createClass({

    render: function () {
        var items = [];
        var inputs;
        for (var i = 0; i < this.props.count; i++) {
            items.push( <input type="text" name={[i]} />);
            items.push(<br />);
        }
        return ( 
            <div className = "col-md-9"> 
                <form action = "/" method = "post" name = "form1"> 
                    {items} 
                    <input type="submit" className="btn btn-success" value = "Submit Form" />            
                </form>
            </div> 
       );
    }
});

var Add = React.createClass({
    render: function () {
        return (<input type = "button" className="btn" value="Add an Input" onClick={this.props.fnClick}/> );
  }
});

var Parent = React.createClass({
    getInitialState: function(){
        return {count:1}
    },
    addInput: function(){
        var newCount = this.state.count + 1;
        this.setState({count: newCount});
    },
    render: function(){
        return (
            <div>
                <Inputs count={this.state.count}></Inputs>
                <Add fnClick={this.addInput}/>
            </div>
        );
    }
});

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

jsFiddle



 类似资料:
  • 问题内容: 我想调用一个在second.js文件的first.js文件中定义的函数。这两个文件都在HTML文件中定义,例如: 我想打电话给在定义中。根据我的搜索结果,答案是首先定义是否可以,但是根据我的测试,我没有找到任何方法。 这是我的代码: 问题答案: 除非在同一文件中定义了该函数,或者在尝试调用该函数之前已加载了该函数,否则无法调用该函数。 除非函数的范围与尝试调用该函数的范围相同或更大,否

  • 问题内容: 我有一个数组和一个引用数组。的大小至少等于。例如 实际上是在指定时间信号中的峰值位置,并且包含稍后时间的峰值位置。但是某些元素实际上是不是我想要的峰(可能是由于噪声等),我想找到“真正的”一个基础。中的“真实”元素应与中的元素接近,在上面给出的示例中,中的“真实”元素应为。在这个例子中应该很明显不是我们想要的,因为它们与B中的任何元素都相去甚远。如何在python / matlab中以

  • 我有两个组件,如下所示,我想从另一个组件调用一个函数。这两个组件都包含在第三个父组件 using 指令中。 构成部分1: 我尝试过使用和但我不知道如何使用它以及如何调用该函数,任何人都可以帮忙吗?

  • 我使用Reavt V6路由。 我正在努力让我的路线在游戏组件中工作。 在完全空白的页面中查看/测试结果。而它应该在gamecomponent中加载犯罪模块。访问/呈现gamecomponent,但/test不会呈现gamecomponent及其内部的路由。 我怎样才能让它工作? 访问url/crime会导致被加载,并且 应该上膛了。 app.js 专用路线: 游戏成分:

  • 问题内容: 我有这些父级和子级组件,我想通过点击功能在子级组件中选择一个项目。但是,似乎子组件中的函数会自动调用,而不是等到用户单击元素后才开始调用。为了更清楚一点,这里是我的父级和子级组件 这些是我使用箭头函数传递给子组件的组件,但是警报始终在第一次渲染时被调用,而不会被用户触发。有什么建议吗? 问题答案: 您应该将函数本身传递给,而不是传递的函数调用的结果。 如果要使用param调用它,则可以

  • 问题内容: 我想在切换时更新状态,但在处理程序中未定义对象。根据教程文档,我应该引用该组件。我想念什么吗? 问题答案: ES6 React.Component不会自动将方法绑定到自身。您需要将它们自己绑定到构造函数中。像这样: