Did anyone have a "ReferenceError: React is not defined" in Roles & Permissions after creating Strapi API?
Did anyone have a "ReferenceError: React is not defined" in Roles & Permissions after creating Strapi API?
直到今天我才遇到任何问题。我想创建一个新的 Strapi API 但我总是得到
ReferenceError: React is not defined
当我想修改角色时,在角色和权限设置菜单中。
列出的角色:
Roles & Permissions
但是当我尝试修改其中一个时,我明白了:
Trying to modify them
我尝试用 yarn 和 npx 创建一个应用程序。两人的结果是一样的。我也尝试用 sqlite 和 postgres 创建它。
我可以补充一点,我的旧 API 仍在正常工作。
Strapi 版本:3.0.3
复制 Strapi GitHub closed issue, reply by user: soupette 的解决方案。
你好@everyone 有一个开放的 PR 解决了这个问题我们真的很抱歉这个问题,它不应该发生。同时,在发布之前,这里有一个解决方法可以让您的管理正常工作:
创建一个extensions/users-permissions/admin/src/components/Controller/index.js文件:
mkdir -p extensions/users-permissions/admin/src/components/Controller
touch extensions/users-permissions/admin/src/components/Controller/index.js
复制以下内容:
/**
*
* Controller
*
*/
import React from 'react';
import PropTypes from 'prop-types';
import { get, map } from 'lodash';
import { FormattedMessage } from 'react-intl';
import pluginId from '../../pluginId';
import { useEditPageContext } from '../../contexts/EditPage';
import InputCheckbox from '../InputCheckboxPlugin';
import { Header, Label, Separator, Wrapper } from './Components';
function Controller({ actions, inputNamePath, isOpen, name, inputSelected, setInputSelected }) {
const { selectAllActions } = useEditPageContext();
const areAllActionsSelected = () => {
return Object.keys(actions).every(action => actions[action].enabled === true);
};
const handleChange = () => {
selectAllActions(`${inputNamePath}.controllers.${name}`, !areAllActionsSelected());
};
const hasSomeActionsSelected = () => {
return Object.keys(actions).some(action => actions[action].enabled === true);
};
const setNewInputSelected = name => {
setInputSelected(name);
};
const labelId = areAllActionsSelected() ? 'unselectAll' : 'selectAll';
return (
<Wrapper>
<Header>
<div>{name}</div>
<Separator />
<div className="checkbox-wrapper">
<div className="form-check">
<Label
className={`form-check-label ${areAllActionsSelected() &&
'checked'} ${!areAllActionsSelected() &&
hasSomeActionsSelected() &&
'some-checked'}`}
htmlFor={name}
>
<input
className="form-check-input"
checked={areAllActionsSelected()}
id={name}
name={name}
onChange={handleChange}
type="checkbox"
/>
<FormattedMessage id={`${pluginId}.Controller.${labelId}`} />
</Label>
</div>
</div>
</Header>
<div className="row">
{map(Object.keys(actions).sort(), actionKey => (
<InputCheckbox
inputSelected={inputSelected}
isOpen={isOpen}
key={actionKey}
label={actionKey}
name={`${inputNamePath}.controllers.${name}.${actionKey}.enabled`}
setNewInputSelected={setNewInputSelected}
value={get(actions[actionKey], 'enabled')}
/>
))}
</div>
</Wrapper>
);
}
Controller.defaultProps = {
actions: {},
inputNamePath: 'permissions.application',
name: '',
};
Controller.propTypes = {
actions: PropTypes.object,
inputNamePath: PropTypes.string,
isOpen: PropTypes.bool.isRequired,
name: PropTypes.string,
};
export default Controller;
重建您的应用程序
# Using yarn
yarn strapi build --clean
# Using npm
npm run strapi build --clean
今天遇到同样的问题。
最新版本 v3.0.4 包含针对此错误的修复。
直到今天我才遇到任何问题。我想创建一个新的 Strapi API 但我总是得到
ReferenceError: React is not defined
当我想修改角色时,在角色和权限设置菜单中。 列出的角色:
Roles & Permissions
但是当我尝试修改其中一个时,我明白了:
Trying to modify them
我尝试用 yarn 和 npx 创建一个应用程序。两人的结果是一样的。我也尝试用 sqlite 和 postgres 创建它。
我可以补充一点,我的旧 API 仍在正常工作。
Strapi 版本:3.0.3
复制 Strapi GitHub closed issue, reply by user: soupette 的解决方案。
你好@everyone 有一个开放的 PR 解决了这个问题我们真的很抱歉这个问题,它不应该发生。同时,在发布之前,这里有一个解决方法可以让您的管理正常工作:
创建一个extensions/users-permissions/admin/src/components/Controller/index.js文件:
mkdir -p extensions/users-permissions/admin/src/components/Controller
touch extensions/users-permissions/admin/src/components/Controller/index.js
复制以下内容:
/**
*
* Controller
*
*/
import React from 'react';
import PropTypes from 'prop-types';
import { get, map } from 'lodash';
import { FormattedMessage } from 'react-intl';
import pluginId from '../../pluginId';
import { useEditPageContext } from '../../contexts/EditPage';
import InputCheckbox from '../InputCheckboxPlugin';
import { Header, Label, Separator, Wrapper } from './Components';
function Controller({ actions, inputNamePath, isOpen, name, inputSelected, setInputSelected }) {
const { selectAllActions } = useEditPageContext();
const areAllActionsSelected = () => {
return Object.keys(actions).every(action => actions[action].enabled === true);
};
const handleChange = () => {
selectAllActions(`${inputNamePath}.controllers.${name}`, !areAllActionsSelected());
};
const hasSomeActionsSelected = () => {
return Object.keys(actions).some(action => actions[action].enabled === true);
};
const setNewInputSelected = name => {
setInputSelected(name);
};
const labelId = areAllActionsSelected() ? 'unselectAll' : 'selectAll';
return (
<Wrapper>
<Header>
<div>{name}</div>
<Separator />
<div className="checkbox-wrapper">
<div className="form-check">
<Label
className={`form-check-label ${areAllActionsSelected() &&
'checked'} ${!areAllActionsSelected() &&
hasSomeActionsSelected() &&
'some-checked'}`}
htmlFor={name}
>
<input
className="form-check-input"
checked={areAllActionsSelected()}
id={name}
name={name}
onChange={handleChange}
type="checkbox"
/>
<FormattedMessage id={`${pluginId}.Controller.${labelId}`} />
</Label>
</div>
</div>
</Header>
<div className="row">
{map(Object.keys(actions).sort(), actionKey => (
<InputCheckbox
inputSelected={inputSelected}
isOpen={isOpen}
key={actionKey}
label={actionKey}
name={`${inputNamePath}.controllers.${name}.${actionKey}.enabled`}
setNewInputSelected={setNewInputSelected}
value={get(actions[actionKey], 'enabled')}
/>
))}
</div>
</Wrapper>
);
}
Controller.defaultProps = {
actions: {},
inputNamePath: 'permissions.application',
name: '',
};
Controller.propTypes = {
actions: PropTypes.object,
inputNamePath: PropTypes.string,
isOpen: PropTypes.bool.isRequired,
name: PropTypes.string,
};
export default Controller;
重建您的应用程序
# Using yarn
yarn strapi build --clean
# Using npm
npm run strapi build --clean
今天遇到同样的问题。
最新版本 v3.0.4 包含针对此错误的修复。