Ich fange an, die Smart/Dumme-Komponente-Muster zu implementieren, wo die "dumme" Komponente nichts über ihre Umgebung weiß und alle ihre Daten durch Requisiten erhält. Was tun Sie, wenn die dumme Komponente Daten übermitteln oder ändern muss? Wie kann es mit der Außenwelt kommunizieren und trotzdem "dumm" sein?reagieren Smart/dumm Komponente Muster für die Änderung von Daten
Hier ist mein grundlegendes Beispiel, das ich verwende, um dieses Muster herauszufinden. Wenn ich hinzufügen und onClick
Ereignis zu der MyTask
Komponente, die einen Zähler in der DB aktualisiert, was würde dieses Ereignis behandeln?
// components/MyList.jsx
import React from 'react';
export default class MyList extends React.Component {
render() {
return(
<div>
<h3>{this.props.listName}</h3>
<ul>
{this.props.tasks.map((task) => (
<MyTask key={task.id} task={task} />
))}
</ul>
</div>
);
}
}
MyList.propTypes = {
listName: React.PropTypes.string.isRequired,
tasks: React.PropTypes.array.isRequired,
}
export class MyTask extends React.Component {
render() {
return (
<li>{this.props.task.text}</li>
);
}
}
MyTask.propTypes = {
task: React.PropTypes.object.isRequired,
}
und die App:
// app.jsx
import React from 'react';
import MyList from './components/MyList.jsx'
export class TaskApp extends React.Component {
getList() {
return('Today Stuff');
}
getTasks() {
return([
{id: 1, text: 'foo'},
{id: 2, text: 'diggity'},
{id: 3, text: 'boo'},
{id: 4, text: 'bop'}
]);
}
render() {
return (
<MyList listName={this.getList()} tasks={this.getTasks()} />
);
}
}
Akzeptierte Antwort für ein bisschen mehr in der Erklärung. Vielen Dank! – Scott
Können Sie bitte ein Beispiel für die zwei verschiedenen Bindungen von 'this' zeigen? Dies wäre eine sehr gründliche Antwort mit diesem Zusatz. – Scott
Einige zusätzliche Beispiele für den Bindungskontext zur Antwort hinzugefügt. Prost! –