首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据外部条件(如购买数量)切换两个不同的按钮(功能/文本)

如何根据外部条件(如购买数量)切换两个不同的按钮(功能/文本)
EN

Stack Overflow用户
提问于 2021-07-22 21:26:49
回答 2查看 37关注 0票数 0

我正在重温一个早先的想法,即在CRA中有条件地在两个按钮之间切换。

代码语言:javascript
运行
复制
import ...
const ...

export const Index = () => {

  // Boolean to toggle buttons conditionally
  const [reachMax] = React.useState( id <= 8 );

  return (

  <div>{(reachMax &&
    <div{(reachMax &&
      <button 
        id="btn1"
        type="button"
        className="..." 
        onClick={event}
      >
        Event A: "Sales!"
      </button>
    </div>)
  ||
    <div>
      <button
        id="btn2"
        type="button"
        className=" "
        disabled='true'
      >
        Event B: "Out of Stock"
      </button>
    </div>)
    }
  )
}

使用状态钩子。布尔值( contract.tokenUri.id <= 8)的条件是从外部智能合约动态获取的。如何设置条件,使其不会返回未定义的错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-25 14:47:44

通过设置此条件来管理解析,以便从智能合约读取ID:

const reachMax = mintedState.state ===“成功”&& mintedState.data.length <= 8;

不需要构造函数,因为状态直接从外部契约传递到应用程序中。一旦nmintedState.state条件满足(成功),就可以使用data.length (ID的代理)作为设置右按钮的最终条件。

这个问题是由于所使用的Solidity合约和ReactJS的组合造成的。

票数 0
EN

Stack Overflow用户

发布于 2021-07-22 21:46:20

您正尝试在箭头函数中访问this。除了不知道this将指向什么之外,在React中,这不是你在函数组件中访问道具的方式。

我假设您在Toggle组件中像这样使用Index

代码语言:javascript
运行
复制
<Index data={...} />

然后访问它,如下所示:

代码语言:javascript
运行
复制
export const Index = (props) => {
    const data = props.data;
    // ....
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68485673

复制
相关文章

相似问题

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