Reactjs 让一个方法调用函数组件中的另一个方法

Reactjs 让一个方法调用函数组件中的另一个方法,reactjs,jsx,fluent-ui,fluentui-react,Reactjs,Jsx,Fluent Ui,Fluentui React,我正在使用从Fluent UI库调用的组件 此组件有几种方法: <DocumentPicker removeButtonAriaLabel="Remove" onRenderSuggestionsItem={SuggestedBigItem as any} onResolveSuggestions={ /* do some stuff here */ } onRenderItem={SelectedDocumentItem} ge

我正在使用从Fluent UI库调用的组件

此组件有几种方法:

<DocumentPicker
    removeButtonAriaLabel="Remove"
    onRenderSuggestionsItem={SuggestedBigItem as any}
    onResolveSuggestions={ /* do some stuff here */ }
    onRenderItem={SelectedDocumentItem}
    getTextFromItem={getTextFromItem}
    pickerSuggestionsProps={pickerSuggestionsProps}
    disabled={isPickerDisabled}
    inputProps={inputProps}
  />

因为您指定了这些方法,所以非常简单:

const _onEmptyInputFocus = () => {
  onResolveSuggestions()
}

<DocumentPicker
    removeButtonAriaLabel="Remove"
    onEmptyInputFocus={_onEmptyInputFocus}
    onRenderSuggestionsItem={SuggestedBigItem as any}
    onResolveSuggestions={onFilterChanged}
    onRenderItem={SelectedDocumentItem}
    getTextFromItem={getTextFromItem}
    pickerSuggestionsProps={pickerSuggestionsProps}
    disabled={isPickerDisabled}
    inputProps={inputProps}
  />
const\u onEmptyInputFocus=()=>{
onResolveSuggestions()
}

我想我现在很清楚,功能组件无法实现这一点。您必须了解组件的内部结构并对其进行调整


解决方法是使用ref并处理底层HTML元素。在Fluent UI中,该道具实际上被称为componentRef,而不仅仅是ref.

我肯定遗漏了什么,这给了我一个错误,正如我所预料的那样。我的代码中没有onResolveSuggestions函数。另外,我想我明白你的意思,但方法和函数之间并不总是对等的。让我更新我的问题,让它更清楚。我对你想要触发这些方法的上下文有问题,它在不同的组件中吗?它是相同的组件。我正在努力使我的场景工作,而不必重写组件。在类组件中,我会使用“this”从另一个方法调用内部方法,但我无法找出函数组件中的等效方法。
const _onEmptyInputFocus = () => {
  onResolveSuggestions()
}

<DocumentPicker
    removeButtonAriaLabel="Remove"
    onEmptyInputFocus={_onEmptyInputFocus}
    onRenderSuggestionsItem={SuggestedBigItem as any}
    onResolveSuggestions={onFilterChanged}
    onRenderItem={SelectedDocumentItem}
    getTextFromItem={getTextFromItem}
    pickerSuggestionsProps={pickerSuggestionsProps}
    disabled={isPickerDisabled}
    inputProps={inputProps}
  />