反应还原函数的函数mapStateToProps和mapDispatchToProps参数之间的区别是什么connect?任何人都可以用例子给出合适的解释
我有这个代码:https://codesandbox.io/s/507w9qxrrl
我不明白:
1)如何在以下后重新渲染()Menu组件:
this.props.client.query({
query: CURRENT_USER_QUERY,
fetchPolicy: "network-only"
});
Run Code Online (Sandbox Code Playgroud)
如果我登录()我希望我的Menu组件重新渲染()本身.但没什么.只有当我点击Home链接时,它才会重新渲染().我怀疑是因为我用它来渲染它:
<Route component={Menu} />
Run Code Online (Sandbox Code Playgroud)
在反应路由器道具中拥抱它.这是错的吗?
另外,如果this.props在login()我看到loading: true永远之后检查菜单.为什么?
2)如果未经过身份验证,如何防止Menu组件查询(例如:localStorage中没有令牌); 我在Menu组件中使用此代码:
export default graphql(CURRENT_USER_QUERY)(Menu);
Run Code Online (Sandbox Code Playgroud)
3)这是正确的方法吗?
我有以下组件:
class MyComponent {
public mode = 'v';
readonly modes = ['v', 'a', 'd'];
....
}
Run Code Online (Sandbox Code Playgroud)
现在我想用a ngFor来显示所有模式的按钮,modes除了存储的当前模式mode.我有以下代码:
<button *ngFor="let othermode of modes">
{{ othermode }}
</button>
Run Code Online (Sandbox Code Playgroud)
我总是希望显示两个按钮,包含剩余的两个模式.我试过这个:
<button *ngFor="let othermode of modes.filter(elem => elem !== this.mode)">
{{ othermode }}
</button>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我看到的所有问题都需要为此功能编写自定义管道,但是没有任何简单的方法来过滤字符串数组,只使用这些值?
我正在使用Angular 2并且是新手.我想调用一个小按钮单击功能.所以我尝试这样做(也许是我来自React背景的bcos):
<button class="btn btn-primary" (click)="(() => { console.log('hi') })()">
Click Me
</button>
Run Code Online (Sandbox Code Playgroud)
我使用了IIFE作为(click)属性.但它没有用.为什么它不起作用,有没有其他方法来声明一个匿名函数并在按钮点击时调用它?
我真正想做的是分配一个这样的值:(val) => { value = val }
我见过这样的代码
function abc(){
return 'abc'
}
class MyComponent extends React.Component {
static abc = abc;
render() { return <h1>{this.abc}</h1>; }
}
Run Code Online (Sandbox Code Playgroud)
其中函数abc是在反应类之外定义的。我不知道作者为什么这样做,为什么不能在课堂上这样做?
在reactjs我使用蚂蚁设计形式.在那种形式,我不想使用getfielddecorator进行默认验证.我想用自己的验证验证字段.它如何验证?例如
<Form onSubmit={this.handlesubmit.bind(this)}> <FormItem>
<input/>
</FormItem>
<FormItem >
<input/>
</FormItem>
<ButtonAnt className="btng" type="primary" htmlType="submit">Save</ButtonAnt>
</Form>
Run Code Online (Sandbox Code Playgroud) 我正在构建一个基于反应的电子应用程序,并偶然发现了日期字段的问题。
当使用input与现场type='date'的onChange事件,不会触发。此外,似乎我无法输入完整日期,一旦我修改了它重置的日期的第三个部分。
因此,默认状态(呈现的输入字段,对值的反应状态为“”)是 tt.mm.jjjj(德语),我认为它会转换为 mm/dd/yyyy。我可以聚焦该字段并输入 01 > 01,然后显示:01.01.jjjj。一旦我输入了这一年的一个数字,一切都会恢复到 tt.mm.jjjj
我用 input[type=date] 元素创建了一个空的 html 文件,它在铬中工作,所以它似乎是反应组件,这是有问题的。
我的组件看起来像:
<input
type="date"
className="input-group-field"
name="birthdate"
id="birthdate"
value={this.state.birthDate}
onChange={event => this.setState({birthdate: event.target.value})}
/>
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
我正在尝试实现类似Facebook的主页(即带有评论的帖子列表).
PostList是负责加载帖子列表的组件(使用其中的fetch componentDidMount()),它本身就是组件的子组件HomePage.
我有一个导航栏的另一个组件,NavBar用<Link>组件(from react-router-dom)调用我的HomePage组件路径('/').
当我在"/"以外的任何页面上时,使用链接工作正常:路由器安装HomePage,然后PostList触发componentDidMount()并显示刚刚检索到的帖子.
但是当我已经在'/'时,链接什么也没做,因为我已经在'/',但我希望它仍然重新加载我的组件,HomePage以便它可以更新其帖子列表.
我该怎么做 ?
我在 React 组件的 中存储了一个 UI 状态state,比如说this.state.receivedElements这是一个数组。每当一个元素被推送到receivedElements. 我的问题是,当数组变空时,我可以不触发渲染吗?
或者一般来说,我可以setState()只调用一次而不重新渲染而重新渲染所有其他时间吗?(有任何选择,变通方法吗?)
我已经通读了这个线程:https : //github.com/facebook/react/issues/8598但没有找到任何东西。
reactjs ×7
javascript ×3
angular ×2
antd ×1
apollo ×1
chromium ×1
ecmascript-6 ×1
electron ×1
es6-class ×1
graphql ×1
html ×1
ngfor ×1
react-apollo ×1
react-redux ×1
react-router ×1
redux ×1
validation ×1