我有两个独立的元素(不是父子)。

是否可以完成这样的行为,即在单击StyledSearchInput时实际上单击了StyledDropDownInputAsync。

        <StyledSearchInput/>
        <StyledDropdownInputAsync searchIcon
          className="options"
          placeholder="Search"
          loadOptions={loadOptions}
          onChange={this.handleSelection}
          cache={{}}
          filterOptions={(options) => (options)}>
        </StyledDropdownInputAsync>

最佳答案

将它们包装在父组件中,定义点击状态,将点击状态传递给StyledDropdownInputAsync,将点击动作传递给StyledSearchInput

const ParentComp = () => {
  const [isClicked, setClick] = useState(false);
  return (
    <>
      <StyledSearchInput onClick={() => setClick(true)}/>
      <StyledDropdownInputAsync isClicked={isClicked} {...otherProps}>
      </StyledDropdownInputAsync>
    </>
  );
};


这在ReactJS中称为Lifting State Up

关于javascript - 在React js中单击element1时,如何执行对element2的单击?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59350698/

10-16 21:25