繁体   English   中英

如何通过更改状态来更改 URL

[英]How to change URL by changing state

我有一个父母和两个孩子。 我正在尝试通过按下按钮来更改图像 url,但没有成功......我似乎无法将数据从按钮子级传递到图像子级 ..

家长:

class Main extends React.Component {
  constructor() {
    super();
    this.state = {
      isHidden: true,
      imageUrl: ""
    };
  }
  showImage = () => () => {
    this.setState({
      imageUrl:
        "https://cdn.pixabay.com/photo/2020/03/19/04/58/coconut-trees-4946270_960_720.jpg"
    });
  };

  render() {
    return (
      <div>
        <ImageButton onClick={this.showImage()} />
        <Image />
      </div>
    );
  }
}

按钮子:

export default class ImageButton extends Component {
  render() {
    return (
      <div>
        <button onClick={this.props.showImage}>New image</button>
      </div>
    );
  }
}

图像儿童:

export default class ProfilePicture extends Component {
  render() {
    return <img src="{props.imageUrl}" />;
  }
}

它有效,注意一些变化。 我希望它会帮助你。

家长:

class Main extends React.Component {
  constructor() {
    super();
    this.state = {
      isHidden: true,
      imageUrl: ""
    };
  }

  showImage = () => () => {
    this.setState({
      imageUrl:
        "https://cdn.pixabay.com/photo/2020/03/19/04/58/coconut-trees-4946270_960_720.jpg"
    });
  };

  render() {
    return (
      <div>
        <ImageButton clicked={this.showImage()} />
        <ProfilePicture imageUrl={this.state.imageUrl} />
      </div>
    );
  }
}

按钮子:

export default class ImageButton extends Component {
  render() {
    return (
      <div>
        <button onClick={this.props.clicked}>New image</button>
      </div>
    );
  }
}

图像儿童:

export default class ProfilePicture extends Component {
  render() {
    return <img src={this.props.imageUrl} />;
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM