• 断然的 亚历克斯·科扎克

    (@cawa-93)


    我正在做一名表单设计师。

    我有一个独立的无线电闭塞容器块.

    这个容器块可以包含任何内容,包括任意数量的单选方块.

    我需要以某种方式设置相同的名称所有属性单选方块在公共场所内容器块. The名称没有任何参考。它只是一个随机字符串。然而,它必须对所有字符串都相同单选方块在共享容器中。

    可以a容器块将其中的任意值通过树传递给所有内部块?

    可以a无线电闭塞在编辑器中以某种方式从单个容器中的邻居那里获取信息?

查看1条回复(共1条)
  • 林纳德

    (@linardsn)

    是的,可以通过使用React上下文共享公共值(在本例中名称属性)。下面是如何实现这一点的示例:

    首先,为随机字符串值创建上下文:

    从“React”导入React;const RadioGroupNameContext=反应创建上下文(null);导出默认RadioGroupNameContext;

    在ContainerBlock组件中,用RadioGroupName上下文。供应商并为生成随机字符串价值道具:

    从“React”导入React,{useState,useEffect};从“”导入RadioGroupNameContext/RadioGroupNameContext';无线电组名称上下文';函数ContainerBlock({children}){const[randomName,setRandomName]=使用状态('');使用效果(()=>{setRandomName(generateRandomString());}, []);//函数为name属性生成随机字符串函数generateRandomString(){return Math.random().toString(36).subtr(2,8);}返回(<RadioGroupName上下文。提供程序值={randomName}><div className=“容器块”>{children}</div></RedioGroupName上下文。提供商>);}导出默认ContainerBlock;

    在RadioBlock组件中,使用收音机组名称上下文获取共享名称最近ContainerBlock的属性值:

    从“React”导入React,{useContext};从“”导入RadioGroupNameContext/RadioGroupNameContext“;函数RadioBlock(){const groupName=useContext(RadioGroupNameContext);返回(<div className=“radio-block”><input type=“radio”name={groupName}/>{/*…其他元素*/}</div>);}导出默认RadioBlock;

    现在,同一ContainerBlock中的所有RadioBlock将具有相同的随机字符串值名称属性,该属性通过上下文共享。

查看1条回复(共1条)
  • 主题“如何在相同类型的所有相邻块之间共享一些静态值?”对新回复关闭。