Link.ru#newId1
по примерно такой ссылке, по айди, требуется открывать с листа новостей каждую новость отдельно.
Как это осуществимо в реакте? Именно в Модалке через id
.
Все зависит конкретно от вашей реализации компонентов списка новостей, входных данных. В самом примитивном случае можно сделать что-то вроде такого:
class App extends React.Component {
state = {
news: [{
id: 0,
title: "News 1",
detail: "Detail news 1"
},
{
id: 1,
title: "News 2",
detail: "Detail news 2"
},
{
id: 2,
title: "News 3",
detail: "Detail news 3"
}
],
modalOpen: false,
modalContent: -1,
}
openDetail = (event, id) => {
event.preventDefault();
this.setState({
modalContent: id,
modalOpen: true,
})
}
closeModal= ()=>{
this.setState({
modalOpen:false,
})
}
openModal = () => {
if(this.state.modalOpen && this.state.modalContent!==-1){
return (<div className="modal">{this.state.news[this.state.modalContent].detail}<div onClick={this.closeModal} className="close">×</div></div>);
}else{
return null;
}
}
printList = () => {
return (this.state.news.map((item,key) => {
return ( < div key = {key} > < a onClick = {
(event) => this.openDetail(event, key)
}
href = {`Link.ru#${key}`}
className = "list" > {item.title}
</a>
</div > )
}));
}
render() {
return ( < div > {this.printList()} {this.openModal()} < /div>)
}
}
ReactDOM.render( < App / > , document.getElementById('root'));
.modal {
background: #ggg;
position: fixed;
width: 400px;
min-height: 100px;
max-height:100%;
top: 50%;
transform: translateY(-50%);
left: 50%;
margin-left: -200px;
border: 1px solid blue;
}
.close {
position: absolute;
top: 10px;
right: 10px;
font-size: 18px;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Мне надо исключить из кода прокрутку с внутренних ссылок, в которых присутствует id=
Всем доброго времени сутокЕсть сайт: С очень прикольным эффектом Обшарил его вдоль и поперек, но не смог понять как они получили эффект для...
Если сейчас загрузиться с режима эмуляции в хроме, а потом перейти в обычный режим, то в консоле выведется 'touch', а нужно, чтобы выводилось simple...
С сервера(nodejs) получаю 2 объекта json вида (в мой клиентский angular 7):