开发者社区> 问答> 正文

自定义页面组件值变化JS控制显隐的问题

功能: 希望通过某个组件的值变化来控制另外组件的显示或隐藏。 image.png numberField_le23fn6w的值大于50时,显示text_le23fn6y隐藏text_le23fn6x,否则隐藏text_le23fn6y显示text_le23fn6x 问题: 1,该代码如果放在didmout中,则按照加载时的值显示或隐藏组件,当值变化时,显示或隐藏组件不会出现变化。 2,如果该代码放到“值变化”JS动作中,则加载时两个组件都是显示的,值变化(按一下空格键)组件显隐都按照代码执行。

需求:

希望加载时,组件显隐按照代码执行,同时也希望值变化时,也按照代码执行。 咨询专家们这段代码有什么问题?怎么修改? 谢谢!

展开
收起
游客as6kdbzxuw7hy 2023-02-13 11:48:55 1293 6
来自:钉钉宜搭
3 条回答
写回答
取消 提交回答
  • 问题一:当值发生变化的时候没有变化:你应该监听一下值是否发生了变化,如果发生了变化再做你发生变化的事件(你图上的代码可以封装成一个函数,方便监听触发)。监听组件传递的值:componentWillReceiveProps; 监听组件内部状态的变化:componentDidUpdate。感觉你更符合的是componentDidUpdate(prevProps,prevState){ 参数分别为改变之前的数据状态对象 if(prevState.属性名!=this.state.属性名) { ... } } 问题二:显隐问题:a的值不可以放state里吗?constructor(props){ super(props); this.state = { a:0 } } render(){ return ( 50?'show':'hide'}>显示的元素) }

    2023-02-16 12:28:34
    赞同 1 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位。 原文链接: https://www.cnblogs.com/magicg/p/15147996.html 以上供你参考一下。

    2023-02-14 11:04:41
    赞同 4 展开评论 打赏
  • 鹏哥冠名:成都B王

    你将这两个组件状态属性设置为隐藏

    2023-02-14 09:07:39
    赞同 2 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载