Diskuze: React přiřazení komponenty k body
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Neznam react. Znam js. Co jsi nasel googlem?
<div id="xxx"></div>
<input type="button" value="kilkni na mne vicekrat" onclick="aaa();">
<script>
function aaa()
{
var el;
el = document.getElementById('xxx');
el.innerHTML += 'a';
}
</script>
https://jsfiddle.net/sw32jgc9/
Vpravo dole, kdyz budes klikat na tlacitko, bude do tagu DIV pomoci metody
innerHTML pridavat text.
Predpokladam, ze chces nejak podobne pracovat s tagy i ty.
google = react get tag element
https://stackoverflow.com/…eact-element
var Child = React.createClass({
render: function() {
return <div ref={function(el){this.props.whatElementAmI(el)}.bind(this)} >Oh My!</div>
}
});
var Parent = React.createClass({
whatElementAmI: function(el) {
console.log(el.nodeName); // "DIV"
},
render: function() {
return <div><Child whatElementAmI={this.whatElementAmI.bind(this)} /></div>
}
});
import ReactDOM from 'react-dom';
class MyComponent extends React.Component {
render() {
return <span>Hello</span>;
}
}
class Container extends React.Component {
componentDidMount() {
var domNode = ReactDOM.findDOMNode(this._component);
console.log(domNode.tagName); // "DIV"
}
render() {
return <MyComponent ref={(c) => this._component = c} />
}
}
//na teze strance
Když používáš React nemáš vůbec důvod manuálně modifikovat
DOM.
Správný způsob je ten, že na kliknutí se vyvolá update v dostatečně
nadřazené komponentě a ten změní stav této komponenty. Při příštím
renderu se podle stavu rozhodneš vyrenderovat svůj lightbox, prompt nebo
formulář.
V tomhle případě se o to asi postará jedna z hlavních komponent aplikace.
Takže klíčová slova: onClick, setState...
PS: Reacti elementy nejsou typu DOM Node. Doporučuju začít v oficiální dokumentaci Reactu a projít si úplný základ - render a update a controlled a uncontrolled components.
Zobrazeno 4 zpráv z 4.