反应中另一个组件的setStatus

诺阿德夫

我浏览了与我的问题略相关的活跃问题,但没有得到成功的解决方案。我希望有一个人可以帮助我。

我在js小提琴上有一个简单的React Baby代码:http : //jsfiddle.net/kb3gN/10313/

我的代码的解释可以在下面的代码中找到:

var Test = React.createClass({
    getInitialState: function(){
        return{
            data: [
                ['Charlie', 10],
                ['Bello', 20],
                ['Wuffi', 15]
            ]
        }
    },
   render: function(){
        return(
            <div>
                <MakePOS data={this.state.data} />
                <MakeTable />
            </div>
        );
    }
});

var MakeTable = React.createClass({
    getInitialState: function(){
        return{
            active: 0,
            weight: 0
        }
    },
    render: function(){
            return(
                <table>
                    <thead>
                        <tr>
                            <td>Type</td>
                            <td>Amount</td>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Chicken</td>
                            <td>some</td>
                        </tr>
                        <tr>
                            <td>Carotts</td>
                            <td>some</td>
                        </tr>
                        <tr>
                            <td>Apple</td>
                            <td>some</td>
                        </tr>
                    </tbody>
                </table>
            );
    }
});

var MakePOS = React.createClass({
    handleClick: function(){
        // update state of MakeTable Component to active = id of the clicked element
        // also update state of MakeTable Component to weight = data-weight value
    },
    render: function(){
        var POS = this.props.data.map(function(i){
        console.log(i[0]+' '+i[1]+' kg');
            return <button onClick={this.handleClick} data-weight={i[1]} id={i[0]}>{i[0]}</button>;
        });
        return(<div className="testDiv">{POS}</div>);
    }
});
React.render(<Test />, document.getElementById('foodApp')); 

解释我的代码:

测试组件中的状态数组代表用户输入,在这种情况下,他选择填写3只宠物及其体重。

在MakePOS组件中动态创建按钮以进行输入。

现在,我要做的是处理这些按钮上的Click事件,并影响MakeTable组件的状态,以便处理隐藏在该按钮后面的值。

我想根据宠物的体重来动态更改表格的行数。

我希望它是可以理解的。

谢谢你的帮助

编辑Facebook文档中提到了类似的内容,但是我并没有真正得到它的提示。在他们的示例中,他们只是在同一组件中调用onClick函数。我找不到更改父组件的子组件状态的任何解决方案:( http://facebook.github.io/react/tips/communicate-between-components.html

标记

handleClick在这种情况下Test您应该将函数移动到管理要影响状态的组件,然后通过props将其作为回调传递。由于点击也会影响activeweight,因此它们也应保持在的状态Test,因此handleClick可以轻松更改其状态。

var Test = React.createClass({
   getInitialState: function(){
        return{
            data: [
                ['Charlie', 10],
                ['Bello', 20],
                ['Wuffi', 15]
            ],
            active: 0,
            weight: 0
        }
   },
   changeWeight: function(weight){
   // do whatever actions you want on click here
   console.log('I am in the main Component ');
   console.log(weight);
   },
   render: function(){
        return(
            <div>
                <MakePOS data={this.state.data} changeWeight={this.changeWeight} />
                <MakeTable active={this.state.active} weight={this.state.weight}/>
            </div>
        );
    }
});

var MakeTable = React.createClass({
    getInitialState: function(){
        return{
            active: 0,
            weight: 0
        }
    },
    render: function(){
            return(
                <table>
                    <thead>
                        <tr>
                            <td>Type</td>
                            <td>Amount</td>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Chicken</td>
                            <td>some</td>
                        </tr>
                        <tr>
                            <td>Carotts</td>
                            <td>some</td>
                        </tr>
                        <tr>
                            <td>Apple</td>
                            <td>some</td>
                        </tr>
                    </tbody>
                </table>
            );
    }
});

var MakePOS = React.createClass({
  handleClick: function(weight){
      this.props.changeWeight(weight);
  },
  render: function(){
    var POS = this.props.data.map(function(i){
    console.log(i[0]+' '+i[1]+' kg');
        return <button onClick={this.handleClick.bind(this,i[1])} key={i[0]}  id={i[0]}>{i[0]}</button>;
    }.bind(this));
    return(<div className="testDiv">{POS}</div>);
  }
});

React.render(<Test />, document.getElementById('foodApp'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在反应中如何调用另一个组件中的一个组件?

来自分类Dev

更改另一个组件/反应图标中的一个组件

来自分类Dev

从另一个组件反应JS渲染组件

来自分类Dev

无法从另一个组件导入反应组件

来自分类Dev

如何从一个组件访问状态值到另一个文件中的另一个函数(不是组件)?反应 js

来自分类Dev

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

来自分类Dev

反应:将TextField值传递给另一个组件中的Table调用

来自分类Dev

在另一个组件V6中反应路由

来自分类Dev

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

来自分类Dev

如何在反应中从另一个组件调用函数

来自分类Dev

反应本机在主中渲染另一个组件

来自分类Dev

如何在反应原生中从另一个文件包含视图到组件?

来自分类Dev

如何从一个组件调用另一个组件的函数?反应

来自分类Dev

在另一个组件内调用一个组件(反应)

来自分类Dev

动态将反应组件插入另一个反应组件

来自分类Dev

如何在另一个组件中使用一个组件的状态?独立组件(反应)

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

更改另一个组件时反应重新渲染组件

来自分类Dev

单击另一个组件时如何渲染组件?反应

来自分类Dev

如何隐藏组件反应并显示另一个组件?

来自分类Dev

如何在另一个组件的函数内渲染反应组件?

来自分类Dev

在.map内部进行onClick反应,然后在另一个同级组件中更改数据

来自分类Dev

在ReactJS中,如何在另一个组件中渲染一个组件?

来自分类Dev

在 React 中的另一个组件中动态渲染一个组件

来自分类Dev

反应如何将一个组件及其道具传递给另一个组件

来自分类Dev

我如何在反应中将一个组件转换为另一个组件

来自分类Dev

在反应中将数据从一个组件发送到另一个组件

来自分类Dev

在React中渲染另一个组件

Related 相关文章

  1. 1

    在反应中如何调用另一个组件中的一个组件?

  2. 2

    更改另一个组件/反应图标中的一个组件

  3. 3

    从另一个组件反应JS渲染组件

  4. 4

    无法从另一个组件导入反应组件

  5. 5

    如何从一个组件访问状态值到另一个文件中的另一个函数(不是组件)?反应 js

  6. 6

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

  7. 7

    反应:将TextField值传递给另一个组件中的Table调用

  8. 8

    在另一个组件V6中反应路由

  9. 9

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

  10. 10

    如何在反应中从另一个组件调用函数

  11. 11

    反应本机在主中渲染另一个组件

  12. 12

    如何在反应原生中从另一个文件包含视图到组件?

  13. 13

    如何从一个组件调用另一个组件的函数?反应

  14. 14

    在另一个组件内调用一个组件(反应)

  15. 15

    动态将反应组件插入另一个反应组件

  16. 16

    如何在另一个组件中使用一个组件的状态?独立组件(反应)

  17. 17

    从另一个文件中的另一个组件更改一个组件的状态

  18. 18

    从另一个文件中的另一个组件更改一个组件的状态

  19. 19

    更改另一个组件时反应重新渲染组件

  20. 20

    单击另一个组件时如何渲染组件?反应

  21. 21

    如何隐藏组件反应并显示另一个组件?

  22. 22

    如何在另一个组件的函数内渲染反应组件?

  23. 23

    在.map内部进行onClick反应,然后在另一个同级组件中更改数据

  24. 24

    在ReactJS中,如何在另一个组件中渲染一个组件?

  25. 25

    在 React 中的另一个组件中动态渲染一个组件

  26. 26

    反应如何将一个组件及其道具传递给另一个组件

  27. 27

    我如何在反应中将一个组件转换为另一个组件

  28. 28

    在反应中将数据从一个组件发送到另一个组件

  29. 29

    在React中渲染另一个组件

热门标签

归档