@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
59 lines (58 loc) • 1.84 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ScrollViewTimeout;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _components = require("@tarojs/components");
var _taro = require("@tarojs/taro");
var _jsxRuntime = require("react/jsx-runtime");
function ScrollViewTimeout(props) {
var _useState = (0, _react.useState)(''),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
target = _useState2[0],
setTarget = _useState2[1];
var timeout = props.timeout,
optiosData = props.optiosData,
tabvalue = props.tabvalue,
value = props.value,
_props$scrollIntoView = props.scrollIntoView,
scrollIntoView = _props$scrollIntoView === void 0 ? true : _props$scrollIntoView;
(0, _react.useEffect)(function () {
if (scrollIntoView && value) {
var index = getIndexByValue(optiosData, tabvalue);
var val = value[index];
if (val !== undefined) {
(0, _taro.nextTick)(function () {
setTimeout(function () {
setTarget("vant-cascader-item".concat(val));
}, timeout);
});
} else {
setTarget('');
}
}
},
// eslint-disable-next-line react-hooks/exhaustive-deps
[tabvalue, value]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ScrollView, {
scrollWithAnimation: false,
scrollY: true,
className: "van-cascader-tab",
scrollIntoView: target,
children: props.children
});
}
function getIndexByValue(arr, value) {
var res = 0;
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (item.paneKey === value) {
res = i;
break;
}
}
return res;
}
;