以下是我在使用semantic UI React modal时遇到的问题:我在网站上显示的情况很糟糕,但奇怪的是我的Modal像this GIF of what is happening一样移动。
我不知道如何解决这个问题。这是我的代码:
class Success extends React.Component {
constructor () {
super();
this.closeModal = this.closeModal.bind(this)
this.state = {
Modalopen: true,
Orders: "",
urlparameter: qs.parse(location.search.replace(/^.*?\=/, ''))
}
}
closeModal () {
this.setState({Modalopen: false})
this.props.history.pushState(null, "/")
}
render () {
return (
<Modal open={this.state.Modalopen}>
<Modal.Header>Success!</Modal.Header>
<Modal.Content image>
<Image wrapped size='medium' src='http://semantic-ui.com/images/avatar2/large/rachel.png' />
<Modal.Description>
<Header>Thank you</Header>
<p>bla bla bla</p>
<Button color='green' onClick={this.closeModal} inverted>
<Icon name='checkmark' /> Got it
</Button>
</Modal.Description>
</Modal.Content>
</Modal>
);
}
}
可能导致此问题的原因是什么?谢谢。
答案 0 :(得分:3)
今天我在尝试创建自定义“全屏”模式时遇到了同样的问题。
这是给我们造成麻烦的线...
https://github.com/Semantic-Org/Semantic-UI-React/blob/master/src/modules/Modal/Modal.js#L255
如果模态height
大于或等于window.innerHeight
,它将添加带有一系列样式的类scrolling
。
setPositionAndClassNames
然后似乎在第271行上被递归调用,这可能导致怪异的循环行为。
我正在向自己的模式中添加margin-bottom: 1px
,以确保它比window.innerHeight
少一点。
我将在semantic-ui-react
中打开PR,看看他们怎么说...
我在https://github.com/Semantic-Org/Semantic-UI-React/pull/3024开设了一个PR,并提供了建议的修复程序。
已合并,现在是语义UI React的一部分。
答案 1 :(得分:0)
就我而言,它通常会创建模态。
这是测试代码(ES5 / webpack):
<强> [index.html的] 强>
<!DOCTYPE html>
<html lang="ko-KR">
<head>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.css"></link>
</head>
<body>
<div id="wrap"></div>
<script src="dist/app.js"></script>
</body>
</html>
[app.jsx]
var React = require('react');
var ReactDOM = require('react-dom');
var Semantic = require('semantic-ui-react');
var Button = Semantic.Button;
var Header = Semantic.Modal.Header;
var Image = Semantic.Image;
var Modal = Semantic.Modal;
var Icon = Semantic.Icon;
var IndexPage = React.createClass({
getInitialState : function() {
return {
Modalopen: true,
Orders: "",
//urlparameter: qs.parse(location.search.replace(/^.*?\=/, ''))
}
},
closeModal: function() {
this.setState({Modalopen: false})
//this.props.history.pushState(null, "/")
},
render : function () {
return (
<Modal open={this.state.Modalopen}>
<Modal.Header>Success!</Modal.Header>
<Modal.Content image>
<Image wrapped size='medium' src='http://semantic-ui.com/images/avatar2/large/rachel.png' />
<Modal.Description>
<Header>Thank you</Header>
<p>bla bla bla</p>
<Button color='green' inverted>
<Icon name='checkmark' /> Got it
</Button>
</Modal.Description>
</Modal.Content>
</Modal>
);
}
});
ReactDOM.render(<IndexPage/>, document.getElementById('wrap'));
Image of Result by the upper code
如果你不断得到错误, 请使用Codepen添加html / js文件的更多详细信息,以便根据您的情况进行测试。