如何先设置状态然后运行onSubmit函数

时间:2019-12-20 17:55:40

标签: javascript reactjs

我有另一个组件中的对象,我想向数据中添加对象值,但是当我第一次单击Submit时,import {Injectable} from '@angular/core'; import {AngularFireDatabase} from 'angularfire2/database'; @Injectable({ providedIn: 'root' }) export class NewsService { list: any[]; constructor(db: AngularFireDatabase) { db.list('/actu').valueChanges() .subscribe(list => { this.list = list; console.log(this.list); }); } Getlist() { return this.list; } getnews(title: string) { return this.list.find(value => value.titre === title); } } 显示为空,下次还可以。我该如何首先console.log

setState

1 个答案:

答案 0 :(得分:0)

该问题已通过useEffect解决。通过在useEffect

中指定条件
    const [startOnSubmit, changeOnSubmit] = useState(false)

    useEffect(() => {
        if (startOnSubmit) {
            addPost(formData);
            changeOnSubmit(false);
        }
    }, [formData, addPost, startOnSubmit, changeOnSubmit]);

    const onSubmit = e => {
        e.preventDefault();
        const oto = { ...options, ...newOptions }
        setFormData({
            ...formData,
            options: oto,
            category: selected === null ? '' : selected.id
        });
        changeOnSubmit(true)
    }