在 Wordpress 块开发的上下文中从道具理解常量赋值的问题

Problem understanding const assignment from props in context of Wordpress block development

我不确定这是我对JavaScript,还是React,或者Wordpress对React的修改不够了解,但这是在做什么?

export default function MyFunction( props ) {
        const {
                attributes: {
                    foo1,
                    foo2
                },
                setAttributes,
        } = props;

我认为它采用了 React 道具并创建了两个范围为 MyFunctionconst:“attributes”和“setAttributes”。但是,稍后,如果我做类似

   return (
      <>
        <Fragment>
            <div>{ foo1 }</div> // this works fine
            <div>{ attributes }</div> // this says "ReferenceError: Can't find variable: attributes"
        </Fragment>
      </>
    );

我不明白为什么我 可以 引用 foo1 而不去 attributes.foo1;而且我不明白为什么我 不能 引用属性。所以,我显然不理解什么看起来像“简单”的任务。帮忙?

您在进行对象传播时已经钻过 attributes,所以您只分配了内部值。有几种方法可以解决这个问题

export default function MyFunction( props ) {
        const {
                attributes: {
                    foo1,
                    foo2
                },
                attributes, // grab attributes too
                setAttributes,
        } = props;

export default function MyFunction( props ) {
        const {
                attributes,
                setAttributes,
        } = props;
        const { foo1, foo2 } = attributes; // grab the values after

或者您可以像上面那样获取属性并使用点符号 attributes.foo1