gpt4 book ai didi

reactjs - 在 react 应用程序中创建首次访问弹出窗口?

转载 作者:行者123 更新时间:2023-12-03 13:35:57 25 4
gpt4 key购买 nike

如何为我的 React 应用程序制作首次访问弹出窗口?是否可以使用 react-popup 来实现模块?我在下面使用了这个模块,但它似乎不起作用。你能检查一下并让我知道这里出了什么问题吗?

下面是我的主页:

import React, {Component} from 'react';
import './HomePage.css';
import Carousel from 'nuka-carousel';
import HeaderComponent from '../../components/Header/Header.js';
import {Decorators} from './decorators.js';
import Popup from 'react-popup'


export default class HomePage extends Component {
redirectPage = () => {
window.location = '#/dashboard';
}

componentWillMount(){
Popup.alert('my component')
}

render() {
var mixins = [Carousel.ControllerMixin];
return (
<div>
<div className='explore-button-container'>
<button id='exploreBtn' onClick={this.redirectPage}>Explore</button>
</div>

<HeaderComponent id='header' location={this.props.location}/>
<Carousel
autoplay={true}
autoplayInterval={3000}
wrapAround={true}>
//Carousel Content
</Carousel>
</div>
);
}
}

最佳答案

在 componentDidMount 中,您可以访问 localstorage 和 sessionStorage,如果这是第一次访问,您可以在其中设置一个标志。像这样的东西:

class myComponent(){
constructor(){//do stuff here}
componentDidMount(){
let visited = localStorage["alreadyVisited"];
if(visited) {
this.setState({ viewPopup: false })
//do not view Popup
} else {
//this is the first time
localStorage["alreadyVisited"] = true;
this.setState({ viewPopup: true});
}
render() {
return(<Modal
aria-labelledby='modal-label'
autoFocus={false}
style={modalStyle}
backdropStyle={backdropStyle}
show={this.state.viewPopup}
onHide={this.close}>
<div style={dialogStyle()} >
I'm the Popup Text
</div>
</Modal>);
}
}

这就是我用 Modal 解决它的方法,但我相信你也可以用 Popup 做到这一点。如果您想在每次第一次访问 session 时查看弹出窗口,您可以使用 sessionStorage 而不是本地存储。请记住,您必须设置样式。您可以在此处查看示例:https://react-bootstrap.github.io/react-overlays/

关于reactjs - 在 react 应用程序中创建首次访问弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com