我正在学习React Native.
我找不到适用于metro bundler的文档.所以,我对此几乎没有任何疑问.顾名思义它创建了一个包.
SCENERIO用户有一个下拉列表,他选择了一个选项.我想显示该下拉列表并将该选项设置为上次由该用户选择的默认值.
我在选项上使用了选定的属性,但React会生成一个警告,要求我在select上使用默认值.
例如
render: function() {
let option_id = [0, 1];
let options = [{name: 'a'}, {name: 'b'}];
let selectedOptionId = 0
return (
<select defaultValue={selectedOptionId}>
{option_id.map(id =>
<option key={id} value={id}>{options[id].name}</option>
)}
</select>
)
}
});
Run Code Online (Sandbox Code Playgroud)
问题是我不知道selectedOptionId,因为所选的选项可以是任何选项.我怎样才能找到defaultValue?
我正在根据角色分离路线。每个 PrivateRoute 都是一个路由。
路由.tsx
export default function MCRoutes({ isUserAuthenticated, role }) {
const token = useFetchToken();
// const { data } = useFetchDataFromState("activeModule");
let privateRoutes = mcRoutesConfig[role].routes.map(
({ id, component, path, exact }) => (
<PrivateRoute
// key={id}
exact={exact}
isUserAuthenticated
path={path}
component={component}
/>
)
);
return (
<Switch>
{privateRoutes}
<Route component={NoPageFound} />
</Switch>
);
}
Run Code Online (Sandbox Code Playgroud)
私人路线
export default function PrivateRoute({
component: Component,
isUserAuthenticated,
...props
}) {
return (
<Route
{...props}
render={innerProps => {
return isUserAuthenticated ? (
<PrivateLayout>
<Component {...innerProps} …Run Code Online (Sandbox Code Playgroud)