reactjs 在将函数传递给子组件时,是否可以将其设置为默认值?

rjee0c15  于 2022-11-04  发布在  React
关注(0)|答案(1)|浏览(115)

A componentsetState函数作为child component的道具传递。
B component不会将setState属性传递给child component,因此当B component被触发时,我会收到错误消息setState is not a function
我知道如果我传递一个值,我可以像value = ''这样设置它,如果没有值,它将是空字符串。
有没有办法给函数设置默认值?或者当只触发了'A组件时,我如何执行setState函数?

const A = () => {
  const setState = () => {
    console.log("A fire");
  };

  return <Child setState={setState} />;
};

const B = () => {
  return <Child />;
};

const Child = ({ setState }) => {
  setState();
  return <diva>hello</div>;
};
3phpmpom

3phpmpom1#

是否有办法为函数设置默认值?
如果setState存在,您可以只添加一个简单的条件:

if (setState) {
   setState(); // if setState exists - call it
}

或者使用带有 * 可选链接**的 * 速记 * 语法:

setState?.();

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

相关问题