Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按TouchableOpacity Avatar时将对象值绑定到组件中_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 按TouchableOpacity Avatar时将对象值绑定到组件中

Javascript 按TouchableOpacity Avatar时将对象值绑定到组件中,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我的目标是在单击婴儿头像时显示绑定到该按钮的覆盖。 让我知道如何修理它 const OverlayForm = ({ baby }) => { return <BabyProfile baby={baby} />; } return ( <React.Fragment> <View style={styles.main}> {Babies.m

我的目标是在单击婴儿头像时显示绑定到该按钮的覆盖。 让我知道如何修理它

      const OverlayForm = ({ baby }) => {
        return <BabyProfile baby={baby} />;
      }

      return (
        <React.Fragment>
          <View style={styles.main}>
            {Babies.map((baby: Baby, index) => (
              <View>
                <TouchableOpacity
                  style={styles.button}
                  onPress={() => {
                    toggleOverlay;
                    myValue = baby;
                  }}
                  key={index}
                >
                  <AvatarData baby={baby} />
                </TouchableOpacity>
              </View>
            ))}
            <Overlay isVisible={visible} onBackdropPress={toggleOverlay}>
              {OverlayForm(myValue)}
            </Overlay>
          </View>
        </React.Fragment>
      );
    }
const OverlayForm=({baby})=>{
返回;
}
返回(
{baby.map((baby:baby,index)=>(
{
切换覆盖;
我的价值=婴儿;
}}
键={index}
>

我根据昆汀·格里塞尔的建议解决了这个问题


您应该在婴儿头像组件中处理覆盖,只需更改其状态即可显示/隐藏覆盖

export default function App() {
  return <BabyAvatar overlay={false} />;
}

const BabyAvatar = () => {
  const [isOverlayed, setIsOverlayed] = React.useState(false);

  const displayOverlay = () => setIsOverlayed(!isOverlayed);

  return (
    <>
    <Text>Baby overlay: {isOverlayed ? 'true':'false'}</Text>
    <Button onPress={() => displayOverlay()} title="Change overlay" />
    </>
  )
}
导出默认函数App(){
返回;
}
常量BabyAvatar=()=>{
const[isOverlayed,setIsOverlayed]=React.useState(false);
const displayOverlayed=()=>setIsOverlayed(!isOverlayed);
返回(
婴儿覆盖:{isOverlayed?'true':'false'}
displayOverlay()}title=“更改覆盖”/>
)
}

您的方法是正确的。在子组件中实现覆盖更简单、更容易:)