javascript 如何使用onpress组合多个状态?

xienkqul  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(93)

我有一个React-Native应用程序。我想切换两个图标(下圆圈和上圆圈)。但是onpress触发器已经是usestate了。那么如何合并两种使用状态呢?所以默认状态是图标向上。但是当你再次触发onPress时,图标必须显示向下。
我尝试运行的代码:

const { toggle, showAccordion } = useContext(ToggleContext);
    const { toggleIcon, setToggleIcon } = useState(false);
    const { accordionItems } = useContext(AccordionItemsContext);

    const handleClick = () => {
        setToggleIcon(!toggleIcon);
    };

    const handleSearch = (query) => {
        setSearchAnimal(query);
    };

<View>
                                {!item.hasOwnProperty("animals") && (
                                    <ButtonDetail
                                        onPress={() => {
                                            toggle(item.id);
                                            handleClick;
                                        }}>
                                        {toggleIcon ? (
                                            <AntDesign name="downcircle" size={17} color="green" />
                                        ) : (
                                            <AntDesign name="upcircle" size={17} color="green" />
                                        )}
                                    </ButtonDetail>
                                )}
                            </View>

字符串
按钮详情:

import { TouchableOpacity } from "react-native";
import styled from "styled-components/native";

export const ButtonDetail = styled(TouchableOpacity)`
    position: absolute;
    right: 25px;
    width: 25px;
    bottom: 10px;
`;


当我像上面那样做的时候。我得到这个错误:

TypeError: setToggleIcon is not a function. (In 'setToggleIcon(!toggleIcon)', 'setToggleIcon' is undefined)


问:如何切换两个图标?

svmlkihl

svmlkihl1#

错误文本说明了问题所在-并不完全是预期传输到 onPress 的内容。要修复此错误,您需要通过如下方式重写代码来修复代码:

//...
<ButtonDetail onPress={() => {
  toggle(item.id);
  handleClick();
}}>
//...

字符串

  • onPress* 不应该(也不能)接受自身内部的数组,它接受一个函数,在这个函数中你可以描述所有你需要的行为,当你点击一个元素时会发生这些行为

相关问题