Obwohl Sie den folgenden Code nicht benötigen, um die Frage zu verstehen, habe ich sie hinzugefügt, falls Sie das Szenario visualisieren müssen. Immer wenn das Formular übermittelt wird, wird die addList-Methode aufgerufen.Reagiert die Komponente selbstständig, wenn eine Methode aufgerufen wird
Und die Komponente aktualisiert sich selbst. Aber ich habe dieses Verhalten nicht erwartet, deshalb habe ich zuerst versucht, meine Listen dem Zustand zuzuweisen, so dass sich die Komponente bei der Änderung des Zustands automatisch auf den neuesten Stand bringen würde.
Wie auch immer es sich selbst aktualisiert, aber warum? Welcher Weg ist effizienter?
import React,{Component} from 'react';
import TrackerReact from 'meteor/ultimatejs:tracker-react';
import {Lists} from '../lib/collections/lists.js';
export default class App extends TrackerReact(Component) {
constructor(){
super();
// this.state = {lists : this.lists()}
}
lists(){
return Lists.find().fetch();
}
addList(e){
e.preventDefault();
//let text = this.refs.list.value ;
let text = this._inputList.value ;
console.log(this._inputList.value);
Lists.insert({
title : text
});
this._inputList.value = "";
//this.setState({lists : this.lists()});
}
render() {
return (
<div>
<h2>Lists</h2>
<ul>
{this.lists().map((a,b)=>(
<List key={a._id} title={a.title} />
))}
</ul>
<form onSubmit={this.addList.bind(this)}>
<input
type="text"
ref={(input)=>{
this._inputList = input ;
}}
placeholder="add list bro"
/>
</form>
</div>
)
}
}
, da Ihre Listen, die Sie importieren, wahrscheinlich aktualisiert werden und die Wiedergabe der obersten Komponente verursachen. was dann ruft die get und re updates –
Was ist, wenn ich keinen Datenfluss hatte, ich bin nur einreichen und eine Methode aufgerufen wird, würde dies dazu führen, die Komponente neu zu rendern, ohne dass Zustand unberührt? – FurkanO
Wird die Seite beim Senden neu geladen? –