转发状态 vs 转发道具到子组件

伊万娜

我在将状态从父组件转发到子组件时遇到问题,这两个组件是类组件。将状态从父组件转发到子组件时,我想在子组件中使用 state showModal 变量作为显示状态变量:

 this.state = {
     show: this.props.show
 }

此变量用于激活模态。当我将它用作 this.props.show 时,状态已被转发到子组件并更新,但是当我在子组件中使用 this.state 中的道具时,它尚未更新。有谁知道问题出在哪里?

第一 - 父组件:

    import React, { Component } from 'react';
    import Modal from './UI/Modal';

    class EnteredBooks extends Component {
        constructor(props) {
            super(props)

            this.state = {
                enteredBook: this.props.enteredBook,
                showModal: false
            }
        }

        detailsHandler = () => {
            this.setState({
                showModal: true
            })
        }

        render() {
            let show =  this.state.showModal;
            return (
                <div>
                     <div className="product">
                         <img src="{this.props.enteredWatch.bookUrl}" />
                         <p>{this.props.enteredWatch.bookType}</p>
                         <p>euro{this.props.enteredWatch.bookPrice}</p>
                         <button 
                             className="details-button"
                             onClick={this.detailsHandler}
                                >
                                    Details
                         </button>
                         <Modal show={this.state.showModal} watch={this.state.enteredWatch} />
                         <button className="buy-button">Buy</button>
                      </div>
                </div>
            );
        }
    }

export default EnteredWatches;

第二 - 子组件:

import React, {Component} from 'react';
import classes from './Modal.css';

class Modal extends React.Component {
constructor(props) {
    super(props)

        this.state = {
            book: this.props.book,
            show: this.props.show
        }
    }
return(
        <div>
             <div className="Modal"
                    style={{
                        transform: this.state.show ? 'translateY(0)' : 'translateY(-100vh)',
                        opacity: this.state.show ? '1':'0'
                    }}>

                    <img src={this.state.book.bookUrl} />
                    <p>{this.state.book.bookType}</p>
                    <p>{this.state.book.watchUrl}</p>
                    <button className="details-button">Details</button>
                    <button className="buy-button">Buy</b
                </div>
            </div>
        );
    }
}


export default Modal;
这将是烧瓶

constructor只运行一次。适用于计算初始状态。但这种情况就是getDerivedStateFromProps钩子的用途。它允许在每次更新组件时从 props 计算状态,包括初始化:

static getDerivedStateFromProps(props) {
  return {
        book: props.book,
        show: props.show
  };
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过 office-js 以编程方式获取回复/转发状态?

来自分类Dev

失去连接后,可以通过ssh保持x11 GUI应用程序的转发状态

来自分类Dev

子组件无法触发状态更改

来自分类Dev

FluentD:转发 vs TCP 输入

来自分类Dev

通过其同级触发状态更改时,子组件不会重新呈现

来自分类Dev

python转发SIGINT到子进程

来自分类Dev

常量转发参考vs常量参考作为转发参考

来自分类Dev

将道具从父级转发到子级

来自分类Dev

如何在Reactjs中从另一个组件触发状态

来自分类Dev

无法将道具从父级传递到子级并将其保存在子级组件的状态下

来自分类Dev

Tweepy中的Twitter状态的转发者

来自分类Dev

父组件状态更新时,子组件的道具不更新

来自分类Dev

如果转发了用户,则重定向到子页面

来自分类Dev

完美转发函子

来自分类Dev

ReactJS-道具vs状态+商店设计

来自分类Dev

传递状态或道具以将值传递给子组件

来自分类Dev

将道具和状态传递给子组件

来自分类Dev

不能使用状态值作为子组件的道具

来自分类Dev

访问有状态子组件中的道具错误

来自分类Dev

将道具设置为子组件中的状态

来自分类Dev

ui路由器状态转发到子文件夹

来自分类Dev

如何将值从组件传递到道具并设置状态

来自分类Dev

Ubuntu转发端口,默认状态,转发不起作用?

来自分类Dev

转发函子,复制最少

来自分类Dev

C ++如何知道在状态模式中将声明转发到何处

来自分类Dev

如何查看ssh端口转发规则的实际状态?

来自分类Dev

STP处于阻塞状态的端口是否仍转发正常流量?

来自分类Dev

C ++如何知道在状态模式中将声明转发到何处

来自分类Dev

如果我有一个按钮在React中的第二个子级中触发状态,如何将状态传递给父级组件

Related 相关文章

  1. 1

    通过 office-js 以编程方式获取回复/转发状态?

  2. 2

    失去连接后,可以通过ssh保持x11 GUI应用程序的转发状态

  3. 3

    子组件无法触发状态更改

  4. 4

    FluentD:转发 vs TCP 输入

  5. 5

    通过其同级触发状态更改时,子组件不会重新呈现

  6. 6

    python转发SIGINT到子进程

  7. 7

    常量转发参考vs常量参考作为转发参考

  8. 8

    将道具从父级转发到子级

  9. 9

    如何在Reactjs中从另一个组件触发状态

  10. 10

    无法将道具从父级传递到子级并将其保存在子级组件的状态下

  11. 11

    Tweepy中的Twitter状态的转发者

  12. 12

    父组件状态更新时,子组件的道具不更新

  13. 13

    如果转发了用户,则重定向到子页面

  14. 14

    完美转发函子

  15. 15

    ReactJS-道具vs状态+商店设计

  16. 16

    传递状态或道具以将值传递给子组件

  17. 17

    将道具和状态传递给子组件

  18. 18

    不能使用状态值作为子组件的道具

  19. 19

    访问有状态子组件中的道具错误

  20. 20

    将道具设置为子组件中的状态

  21. 21

    ui路由器状态转发到子文件夹

  22. 22

    如何将值从组件传递到道具并设置状态

  23. 23

    Ubuntu转发端口,默认状态,转发不起作用?

  24. 24

    转发函子,复制最少

  25. 25

    C ++如何知道在状态模式中将声明转发到何处

  26. 26

    如何查看ssh端口转发规则的实际状态?

  27. 27

    STP处于阻塞状态的端口是否仍转发正常流量?

  28. 28

    C ++如何知道在状态模式中将声明转发到何处

  29. 29

    如果我有一个按钮在React中的第二个子级中触发状态,如何将状态传递给父级组件

热门标签

归档