Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >模态不像预期的那样接近

模态不像预期的那样接近
EN

Stack Overflow用户
提问于 2018-02-02 12:35:51
回答 1查看 512关注 0票数 1

期望行为

  • 单击Signin,Modal将打开
  • 单击模式外部或按esc,模态关闭。

实际行为

  • 单击Signin,Modal不会打开,因为onClose会立即启动

这里是程序的流程:

App.js被呈现,头被呈现,一个openSignIn回调道具被传递给它,当用户单击SignIn链接时触发openSignIn回调函数,当回调被调用时,它将导致App.js中的signinOpen变为真,signinOpen作为在注册组件中的支柱opencloseSignin回调函数一起传递,当Registration.js收到一个支柱时,它将调用componentWillReceiveProps函数,注册组件中的isOpen状态将成为不管open支柱是什么

App.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Component } from 'react';
import {BrowserRouter as Router,Route} from 'react-router-dom';

import './App.css';

//Components imports
import Homepage from './components/Homepage/Homepage';
import Header from './components/Header/Header'

import Registration from './components/Registration/Registration';
import About from './components/About/About';
class App extends Component {

    state = {
        signinOpen:false
    }
    openSignIn = ()=>{
        console.log("openSignin in app.js called")
        this.setState({signinOpen:true},()=>{
            console.log("in app.js,signinOpen is",this.state.signinOpen);  
        });

    }
    closeSignin = ()=>{
        console.log("closeSignin called in app.js");
        this.setState({signinOpen:false});
    }
    render() {
        return (
        <Router>
          <div className="App">

            <Header openSignIn = {this.openSignIn}/>

            <Route path="/" exact render = {()=><Homepage/> }></Route>
            <Route path="/about" component={About}/>   

            <Registration 
            open = {this.state.signinOpen}
            closeSignin = {this.closeSignin}
            />

          </div>
        </Router>
        );
      }
}

export default App;

Registration.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React,{Component} from 'react';
import './Registration.css';

import { Modal } from 'semantic-ui-react'

class Registration extends Component{
    constructor(props){
        super(props);
        this.state = {
            isOpen:false
        }
        this.handleClose = this.handleClose.bind(this);

    }

    componentWillReceiveProps(nextProps){
        console.log("next props called, nextProps.open is: ")
        console.log(nextProps.open);

        this.setState({isOpen:nextProps.open},()=>{
            console.log("now isOpen in Registration state is: ")
            console.log(this.state.isOpen);
        });
    }
    handleClose = ()=>{
        console.log("handle close in registration called");
        this.setState({isOpen:false});
        this.props.closeSignin();

    }

    render(){

        return(
                <Modal 
                    open={this.state.isOpen}
                    onClose={()=>this.handleClose}
                    closeOnEscape={true}
                    closeOnRootNodeClick={true}
                    closeIcon= {true}
                >    
                    <Modal.Header>
                        Delete Your Account
                    </Modal.Header>
                    <Modal.Content>
                        <p>Are you sure you want to delete your account</p>
                    </Modal.Content>
                </Modal>
        )
    }
}
export default Registration;

Header.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React,{Component} from 'react';
import './Header.css';

import { Grid } from 'semantic-ui-react'
import { Link } from 'react-router-dom';

import injectTapEventPlugin from 'react-tap-event-plugin';
injectTapEventPlugin();

class Header extends Component{
    state = {
        loggedIn:false
    }
    render(){
        return(
            <Grid divided='vertically'>
                    <Grid.Row>
                        <Grid.Column width={5}></Grid.Column>

                        <Grid.Column width={7}> 
                            <header className="header">
                                <Link className="header-button" to="/about">About</Link>
                                <Link className="header-button" to="/polls">Poll List</Link>
                                {/*Instead of just adding the following link, we will do a check if the user is logged in,
                                is he's logged in we show a dropdown menu that says welcome */}
                                <Link className="header-button" to="#" onTouchTap={this.props.openSignIn}>SignIn</Link>                        
                            </header>     
                        </Grid.Column>
                        <Grid.Column width={2}></Grid.Column>
                    </Grid.Row>  

                </Grid>


        )
    }
}
export default Header;
EN

回答 1

Stack Overflow用户

发布于 2018-05-23 20:59:34

SUIR Modal组件的功能完全符合您的预期,包括内部处理开放状态本身。当您在Modal组件上定义'open‘支柱时,您在内部选择退出默认状态,这使您负责控制该状态。

我建议用您想要触发模型的组件定义一个trigger支柱,并使用SUIR提供的所有状态功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48590516

复制
相关文章
【数据库报错(未删除任何行,未更新任何行)】
首先查看定义的表格数据类型有无问题,点击表格编辑前100行 如何更改编辑行数:更改编辑行数 这里的允许NULL值为通过输入端输入后,写进数据库是否包含空值 例如,输入端通过注册输入注册名后,若允许NULL值未勾选,则写进表格的为用户名+数据类型除了用户名所占字节剩余用空格进行填充(写入表格中的数据为用户名+若干空格) 若允许NULL值勾选了,则写进表格的即为刚刚进行注册的用户名,其后没有多余空格
magize
2023/07/11
3810
【数据库报错(未删除任何行,未更新任何行)】
获取jqGrid中选择的行的数据
var id=$(‘#gridTable’).jqGrid(‘getGridParam’,'selrow’);
ydymz
2018/09/10
2.5K0
[MySQL] mysql 的行级显式锁定和悲观锁
隐式和显式锁定: 1.innodb是两阶段锁定协议,隐式锁定比如在事务的执行过程中.会进行锁定,锁只有在commit或rollback的时候,才会同时被释放 2.特定的语句进行显式锁定 select ... lock in share mode ; select ... for update,where条件里面的必须是主键,否则会锁整张表 3.需要用在事务中使用,并且两个查询都需要for update才能阻塞住另一个去读,也就是实现写锁,阻塞别的读锁,悲观排他的目的 4.如果不想开启事务,就把autocommit关掉,这样默认就是开启事务了,每次都要commit才行
唯一Chat
2019/09/10
1.2K0
[MySQL] mysql 的行级显式锁定和悲观锁
MySQL SQL更新锁定
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。
Leshami
2018/12/19
2.5K0
SQL"已更新或者删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)“解决办法
  这种问题大多是由于没有主键(PK)导致同一张表中存在若干条相同的数据。DBMS存储时,只为其存储一条数据,因为DBMS底层做了优化,以减少数据冗余。所以删除或更新一条重复数据就牵一发而动全身。
孙晨c
2019/09/10
3.6K0
SQL"已更新或者删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)“解决办法
css选择器选择奇数行或偶数行
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。
蓓蕾心晴
2022/12/06
2.4K0
MySQL的行转列
所谓的行转列操作,就是将一个表的行信息转化为列信息,说着可能比较笼统,这里先举个例子,如下:
AsiaYe
2019/11/06
13.2K0
Python-科学计算-pandas-11-df获取特定行或者列
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2
zishendianxia
2020/06/16
2.1K0
mysql行转列
目录 1 mysql行转列 1 mysql行转列 SELECT t.shsexssjhylydm ,count( 1 ) count FROM ( select REGEXP_SUBSTR(SHSEXSSJHYLYDM, '[^,]+', 1, L) AS SHSEXSSJHYLYDM,shsexsbh from TB_YW_SHSEXS_XS xs, (SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 1000) WHERE L(+)
一写代码就开心
2022/05/27
3.2K0
SQL 获取纯数值的行
在 MySQL 库中有个 mix 表,它有一个列叫作 v,该列存储了文本和纯数值的内容。部分数据如下:
白日梦想家
2020/11/26
1.6K0
mysql行转列简单例子_mysql行转列、列转行示例[通俗易懂]
最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示。
全栈程序员站长
2022/07/01
4.8K0
mysql行转列简单例子_mysql行转列、列转行示例[通俗易懂]
mysql行转列转换
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`stuid`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; -- 课程表 CREATE TABLE `courses` ( `cours
皇上得了花柳病
2020/05/04
2K0
Mysql行级锁
锁是计算机协调多个进程或纯线程并发访问某一资源的机制. 在mysql中更是用处多多, 今天就一起看下mysql中的行级锁. 它主要包括行锁, 间隙锁, 临键锁三种. 首先我们先了解几个基础概念.
一个架构师
2022/06/27
3.3K0
Mysql行级锁
【MySQL】InnoDB行格式
首先明确在 innodb 引擎中数据是以页为基本单位读取的,而一个页中又包含多个行数据,那么对应地就会有不同的行格式来存储数据,innodb 中的行格式有四种:compact、redundant、dynamic、compressed。redundant 是 5.0 之前用的行格式,这里就不记录了。
玛卡bug卡
2022/12/18
1.6K0
【MySQL】InnoDB行格式
Mysql 行转列 + json
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137507.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.3K0
一行代码获取股票、基金数据,并绘制K线图
大家好,我是老表,今天这篇文章和大家分享一下如何利用Python获取股票、基金数据,并进行可视化,为金融分析&可视化先导篇。
老表
2022/10/31
1.5K0
一行代码获取股票、基金数据,并绘制K线图
mysql行转列函数_mysql行转列,函数GROUP_CONCAT(expr)
SELECT id, product_name FROM `product` WHERE id < 5
全栈程序员站长
2022/08/23
3.1K0
mysql行转列函数_mysql行转列,函数GROUP_CONCAT(expr)
MySQL原理 - InnoDB引擎 - 行记录存储 - Compact 行格式
MySQL 服务器上负责对表中数据的读取和写入工作的部分是存储引擎,比如 InnoDB、MyISAM、Memory 等等,不同的存储引擎一般是由不同的人为实现不同的特性而开发的,目前OLTP业务的表如果是使用 MySQL 一般都会使用 InnoDB 引擎,这也是默认的表引擎。
干货满满张哈希
2021/04/12
1.3K0
MySQL原理 - InnoDB引擎 - 行记录存储 - Compact 行格式
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
在上一篇:MySQL原理 - InnoDB引擎 - 行记录存储 - Compact格式 中,我们介绍了什么是 InnoDB 行记录存储以及 Compact 行格式,在这一篇中,我们继续介绍其他三种行格式。
干货满满张哈希
2021/04/12
6540
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
MySQL行锁的最佳实践
行锁就是针对数据表中行记录的锁。事务A更新了一行,而这时候事务B也要更新同一行,须等事务A操作完成后才能更新。
JavaEdge
2022/11/30
1.6K0

相似问题

只选择未锁定的行mysql

46

是否选择行并更新相同的行以进行锁定?

21

选择并锁定一行,然后更新

31

MySQL行锁定和更新

12

mysql -更新时锁定行

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文