Как обновить элемент HelloWorld
из функции updateHelloWorld
и вообще это возможно?
Пример кода:
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import registerServiceWorker from './registerServiceWorker';
function getServerData() {
// Получаем данные с сервера
data = new GetServerData()
return data.data
}
function updateHelloWorld() {
// Магия которая должна обновить элемент
}
class HelloWorld extends React.Component {
render() {
return (
<h1>Hello world {getServerData}</h1>
);
}
}
class ButtonClisk extends React.Component {
render() {
return (
<div>
<button onClick={updateHelloWorld}>Обновить</button>
</div>
);
}
}
ReactDOM.render(
<div>
<HelloWorld />
<ButtonClisk />
</div>,
document.getElementById('root') as HTMLElement
);
registerServiceWorker();
Это возможно, но делаете вы это не правильно.
Вот простейший пример реализации, более подробно лучше почитать в учебниках. Попробуйте этот или этот для начала, оба на русском языке.
// Получаем данные с сервера
// допустим, это какой-то сервер или библиотека, которую вы подключаете в своём проекте
function getServerData() {
return 'SERVER DATA: ' + new Date();
}
// это может быть функция, которая вызывается в экшене (если использовать редакс)
function updateHelloWorld() {
const serverData = getServerData();
console.log('data:', serverData);
return serverData;
}
// первый дочерний компонент
class HelloWorld extends React.Component {
render() {
const data = this.props.data;
return (
<div>
{ data ?
data :
<h1>Hello world</h1>
}
</div>
);
}
}
// второй дочерний компонент
class ButtonClick extends React.Component {
render() {
const { onClick } = this.props;
return (
<div>
<button onClick={onClick}>Обновить</button>
</div>
);
}
}
// родительский компонент
// он хранит в себе состояние и реагирует на событие/передаёт полученные данные нужному компоненту
class App extends React.Component {
constructor(props) {
super(props);
this.state = { data: '' };
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
const data = updateHelloWorld();
this.setState({ data: data });
}
render() {
const data = this.state.data;
return (
<div>
{/* данные передаются через пропсы */}
<HelloWorld data={data} />
{/* обработчик также передаётся через пропсы */}
<ButtonClick onClick={this.handleClick} />
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сервис который делает запрос через $http , в обработке запроса (неважно resolve или reject) , я возвращаю какие то данные через return, в итоге сервис...
Имеется такой код(прилагаю важные части для понимания)Игра найди пару