我知道设置状态是一种反模式,componentDidMount
并且应该设置状态,componentWillMount
但是假设我想将li
标签数量的长度设置为状态.在这种情况下,我无法设置状态,componentWillMount
因为li
在该阶段期间可能尚未安装标记.那么,这里最好的选择是什么?如果我设置状态会componentDidMount
好吗?
如何从字母'o'开始删除git中的分支?
假设,我有一个如下所示的分支列表:
origin_alpha
origin_beta
origin_gamma
alpha
beta
gamma
Run Code Online (Sandbox Code Playgroud)
我不想删除分支origin_alpha,origin_beta和origin_gamma.
假设我有以下课程:
class Tabs extends React.Component {
displayName: Tabs;
static propTypes = {
selected: React.PropTypes.number,
children: React.PropTypes.oneOfType([
React.PropTypes.array,
React.PropTypes.element
]).isRequired
};
constructor() {
super();
this.state = {
selected: 0,
maxSelected: 0
};
render() {
return(
<div>
{this.props.selected}
{this.props.children}
</div>
);
}
};
Run Code Online (Sandbox Code Playgroud)
我想知道如果传递以下构造函数很重要:
constructor(props) {
super(props);
}
Run Code Online (Sandbox Code Playgroud)
我目前的代码工作得很好,但我想知道这是不是一个好习惯.
两者有什么区别:
import React from 'react/addons';
let {PropTypes} = React;
Run Code Online (Sandbox Code Playgroud)
对比
import React, { PropTypes } from 'react/addons';
Run Code Online (Sandbox Code Playgroud)
是否有任何我们应该遵循的适当约定?
根据RTK 查询文档,我可以创建如下查询:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
prepareHeaders: (headers) => {
headers.set('Authorization', `Bearer ${accessToken}`);
return headers;
},
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: () => ({ url: `projects` }),
}),
}),
});
Run Code Online (Sandbox Code Playgroud)
以上按预期工作。但是,如果想使用像Kitsu这样的外部库来获取和转换数据,我会收到以下错误:
这是我在使用 Kitsu 时更新的代码:
export const projectsApi = createApi({
reducerPath: 'projects',
baseQuery: fetchBaseQuery({
baseUrl: "https://some-site.com/api/",
}),
tagTypes: ['Project'],
endpoints: (builder) => ({
fetchProjects: builder.query<Project[], void>({
query: api.get('projects'),
}),
}),
});
Run Code Online (Sandbox Code Playgroud)
下面是api函数的代码:
const …
Run Code Online (Sandbox Code Playgroud) 根据文档,我应该在我的config/environment.js文件中放置routeAfterAuthentication.
我的environment.js包含以下内容:
module.exports = function(environment) {
var ENV = {
modulePrefix: 'client',
environment: environment,
baseURL: '',
locationType: 'auto',
routeAfterAuthentication: 'dashboard',
...
Run Code Online (Sandbox Code Playgroud)
但是,它仍未被重定向到仪表板路由并显示未定义索引路由.
我在这里错过了什么吗?