我有這個課程。在所有函數中,除了Idea類中的render()之外,它等於null。 我試圖從React.js: onChange event for contentEditable反應「這個」在功能上始終爲空
class Idea extends React.Component {
render() {
return (
<div id="root"
onInput={this.emitChange}
onBlur={this.emitChange}
contentEditable
dangerouslySetInnerHTML={{__html: this.props.html}}>
</div>
);
}
shouldComponentUpdate(nextProps) {
return nextProps.html !== ReactDOM.findDOMNode(this).innerHTML;
}
componentDidUpdate() {
if (this.props.html !== ReactDOM.findDOMNode(this).innerHTML) {
ReactDOM.findDOMNode(this).innerHTML = this.props.html;
}
}
emitChange() {
var html = ReactDOM.findDOMNode(this).innerHTML;
if (this.props.onChange && html !== this.lastHtml) {
this.props.onChange({
target: {
value: html
}
});
}
this.lastHtml = html;
}
}
地圖類重複的解決方案:
class Map extends React.Component {
render() {
var handleChange = function (event) {
this.setState({html: event.target.value});
}.bind(this);
return (
<div>
<Header/>
<div id="map">
{this.props.map.root && (
<Idea html={this.props.map.root.title} idea={this.props.map.root} onChange={handleChange}/>
)}
</div>
</div>
);
}
}
我不明白這是爲什麼總是空。你可以幫我嗎? 謝謝