code: function scrollOnePage(element, downward) {
    
    const scrollTarget = element[symbols.scrollTarget];
    const items = element.items;
    const selectedIndex = element.state.selectedIndex;
  
    // Determine the item visible just at the edge of direction we're heading.
    // We'll select that item if it's not already selected.
    const edge = scrollTarget.scrollTop + (downward ? scrollTarget.clientHeight : 0);
    const indexOfItemAtEdge = getIndexOfItemAtY(items, scrollTarget, edge, downward);
  
    let newIndex;
    if (indexOfItemAtEdge && selectedIndex === indexOfItemAtEdge) {
      // The item at the edge was already selected, so scroll in the indicated
      // direction by one page. Leave the new item at that edge selected.
      const delta = (downward ? 1 : -1) * scrollTarget.clientHeight;
      newIndex = getIndexOfItemAtY(items, scrollTarget, edge + delta, downward);
    }
    else {
      // The item at the edge wasn't selected yet. Instead of scrolling, we'll
      // just select that item. That is, the first attempt to page up/down
      // usually just moves the selection to the edge in that direction.
      newIndex = indexOfItemAtEdge;
    }
  
    if (!newIndex) {
      // We can't find an item in the direction we want to travel. Select the
      // last item (if moving downward) or first item (if moving upward).
      newIndex = (downward ? items.length - 1 : 0);
    }
  
    // If external code causes an operation that scrolls the page, it's impossible
    // for it to predict where the selectedIndex is going to end up. Accordingly,
    // we raise change events.
    const saveRaiseChangesEvents = element[symbols.raiseChangeEvents];
    element[symbols.raiseChangeEvents] = true;
  
    element.setState({
      selectedIndex: newIndex
    });
  
    element[symbols.raiseChangeEvents] = saveRaiseChangesEvents;
  
    const changed = element.state.selectedIndex !== selectedIndex;
    return changed;
  }
docs: Move by one page downward (if downward is true), or upward (if false).
  Return true if we ended up changing the selection, false if not.