Добрый день!
У меня есть простой компонент на react реализующий selector
interface SelectorCompProps {
innerContent: any;
onClick?: () => void;
options?: SelectorListItem[];
itemClick?: (item: SelectorListItem) => void;
isMinor: boolean;
}
export const SelectorComp: FC<SelectorCompProps> = ({innerContent, onClick, itemClick, options, isMinor}) => {
let [isOpened, setIsOpened] = useState(true);
let selectorClick = function() {
setIsOpened(true);
}
let closeList = function() {
console.log("set false");
setIsOpened(false);
}
console.log(isOpened);
return <div className={style.container} onClick={selectorClick}>
<div className={jc([style.selector, isMinor ? style.selectorMinor : ""])}>
<div className={style.selectorName}>
<div className={style.selectorNameWrap} dangerouslySetInnerHTML={{"__html": innerContent}}></div>
</div>
<div className={style.selectorMore}>
<svg width="10" height="10" viewBox="0 0 8 7" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="8" height="7" transform="matrix(-1 0 0 -1 8 7)" fill="white"></rect><path fill-rule="evenodd" clip-rule="evenodd" d="M6.89674 2.30186L4.64759 5.59192C4.37531 6.10402 3.72453 6.13414 3.40772 5.68229L1.10326 2.30186C0.8117 1.75352 1.17222 1.0649 1.75085 1.0649L6.24915 1.0649C6.82778 1.0649 7.1883 1.75352 6.89674 2.30186Z" fill="#6F7780"></path></svg>
</div>
</div>
{isOpened && <SelectorListComp items={options!} onClick={closeList} closeList={closeList}></SelectorListComp>}
</div>
}
Открытие селектора работает корректно, но закрытие не работает.
При вызове функция closeList меняет isOpened, но при последующей отрисовке isOpened опять true
Подскажите пожалуйста, в чем проблема