首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值从select控件传递给函数

将值从select控件传递给函数
EN

Stack Overflow用户
提问于 2019-04-24 09:12:30
回答 2查看 669关注 0票数 1

我已经创建了一个select控件,该控件具有默认选项和许多不同的选项,这些选项应该允许我以多种不同的方式设置标题的样式。

我可以看到我的选择在改变值(注意console.log),所以我知道它很好用。

代码语言:javascript
复制
const MySelectControl = withState( {
   size: 'display-2',
} )( ( { size, setState } ) => (
   <SelectControl
   label="Size"
   value={ size }
   options={ [
       { label: 'Display 1', value: 'display-1' },
       { label: 'Display 2', value: 'display-2' },
       { label: 'Display 3', value: 'display-3' },
       { label: 'Display 4', value: 'display-4' },
   ] }
   onChange={ ( size ) => { setState( { size }, console.log(size + ' from func')  ) } }
   />
) );

// Block Options
const withInspectorControls =  createHigherOrderComponent( ( BlockEdit ) => {


   return (props) => {
       return (
           <Fragment>
           <BlockEdit { ...props } />
           <InspectorControls>
           <PanelBody
           title="Display Block Settings"
           initialOpen={ true }
           >

           <MySelectControl />

           </PanelBody>
           </InspectorControls>
           </Fragment>
       );
   };
}, "withInspectorControl" );

wp.hooks.addFilter( 'editor.BlockEdit', 'display-heading/with-inspector-controls', withInspectorControls );


function handleSize(){
   return MySelectControl.value;
}


const sizeH = handleSize();

我已经创建了一个函数来处理这个值,但是当我试图返回函数handlesize‘返回MySelectControl.value’中的值时,我的结果是未定义的,而不是display-2或任何其他选项。

我似乎无法得到我所缺少的价值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-12 21:43:29

我设法解决了这个问题:-

  1. 在编辑函数中创建一个select控件。
代码语言:javascript
复制
{

  <SelectControl
      label="Size"
      value={ size }
      options={ [
          { label: 'Display 1', value: 'display-1' },
          { label: 'Display 2', value: 'display-2' },
          { label: 'Display 3', value: 'display-3' },
          { label: 'Display 4', value: 'display-4' },
      ] }
   onChange={ ( size ) => props.setAttributes( { size: size } ) }
      />

}
  1. 创建一个属性(大小)
  2. 更改select控件以更改size属性
  3. 将道具传递给保存函数props.attributes.size
票数 0
EN

Stack Overflow用户

发布于 2019-04-24 09:23:11

代码语言:javascript
复制
function handleSize(){
   return MySelectControl.value;
}

你不想要MySelectControl.size而不是价值吗?或者类似于(我不确定) MySelectControl.props.size或MySelectControl.props.attributes.size之类的东西。

这可能对console.log(MySelectControl)有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55826419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档