小编Dan*_*ama的帖子

componentDidUpdate中的prevState是currentState吗?

componentDidUpdate()过去曾经使用它并且按预期工作.

然而,这一次,我做到了

componentDidUpdate(prevProps, prevState) {
    if (prevState.object.someString !== this.state.object.someString) {
        console.log(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且true从不记录.我将两个状态对象记录到控制台,发现它们完全相同:当前状态.

这是一个错误吗?我在这里错过了什么?

谢谢.

编辑:我尝试用同样的东西componentWillUpdate(nextProps, nextState)再做一次,它们是同一个对象.

编辑2:我正在改变状态:

modifyObject = (field, value) => {
    const { object } = this.state;
    object[field] = value;
    this.setState({ object });
}
Run Code Online (Sandbox Code Playgroud)

state reactjs react-native

7
推荐指数
1
解决办法
9880
查看次数

在firebase云功能中返回多个异步函数的承诺?

所以我有一个Firebase云功能,可以调用2个异步功能.

exports.someFunction = functions.firestore
  .document('some/path')
  .onCreate(event => {
    asyncFunction1();
    asyncFunction2();
  });
Run Code Online (Sandbox Code Playgroud)

asyncFunction1和asyncFunction2都返回一个promise.

现在,Firebase决定我们应该这样做

通过返回JavaScript承诺来解析执行异步处理的函数(也称为"后台函数").

但是,由于我的函数正在执行两个异步进程,我应该返回什么?我试过了

exports.someFunction = functions.firestore
  .document('some/path')
  .onCreate(event => {
    return Promise.all(
      asyncFunction1(),
      asyncFunction2()
    );
  });
Run Code Online (Sandbox Code Playgroud)

这有效:两个函数都被正确调用和执行,但我TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined at Function.all在调用Cloud函数时也会收到错误.

有任何想法吗?提前致谢.

javascript firebase google-cloud-functions google-cloud-firestore

5
推荐指数
1
解决办法
1533
查看次数