小编Dan*_*ane的帖子

mapstatetoprops和mapdispatchtoprops之间的区别是什么

反应还原函数的函数mapStateToPropsmapDispatchToProps参数之间的区别是什么connect?任何人都可以用例子给出合适的解释

reactjs redux react-redux

22
推荐指数
3
解决办法
1万
查看次数

React,Apollo 2,GraphQL,身份验证.如何在登录后重新渲染组件

我有这个代码: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.propslogin()我看到loading: true永远之后检查菜单.为什么?

2)如果未经过身份验证,如何防止Menu组件查询(例如:localStorage中没有令牌); 我在Menu组件中使用此代码:

export default graphql(CURRENT_USER_QUERY)(Menu);
Run Code Online (Sandbox Code Playgroud)

3)这是正确的方法吗?

javascript apollo reactjs graphql react-apollo

10
推荐指数
1
解决办法
1330
查看次数

在ngFor内按值过滤项目而不编写管道

我有以下组件:

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)

但它不起作用.我看到的所有问题都需要为此功能编写自定义管道,但是没有任何简单的方法来过滤字符串数组,只使用这些值?

ngfor angular

7
推荐指数
2
解决办法
8939
查看次数

为什么我不能在Angular模板中定义内联函数?怎么办呢?

我正在使用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 }

angular

6
推荐指数
1
解决办法
4181
查看次数

在反应组件中的类之外编写函数

我见过这样的代码

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是在反应类之外定义的。我不知道作者为什么这样做,为什么不能在课堂上这样做?

javascript ecmascript-6 reactjs es6-class

6
推荐指数
1
解决办法
8063
查看次数

如何在不使用reactjs中的getFieldDecorator的情况下验证ant设计表单项?

在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)

validation reactjs antd

5
推荐指数
1
解决办法
2万
查看次数

React input[type=date] 组件无法正常工作

我正在构建一个基于反应的电子应用程序,并偶然发现了日期字段的问题。

当使用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)
  • 电子 = 1.7.8
  • 铬 = 7.9.0
  • 反应 = 15.6.2

关于如何解决这个问题的任何想法?

html chromium reactjs electron

4
推荐指数
1
解决办法
1万
查看次数

通过React Router中的<Link>重新加载组件

我正在尝试实现类似Facebook的主页(即带有评论的帖子列表).

PostList是负责加载帖子列表的组件(使用其中的fetch componentDidMount()),它本身就是组件的子组件HomePage.

我有一个导航栏的另一个组件,NavBar<Link>组件(from react-router-dom)调用我的HomePage组件路径('/').

当我在"/"以外的任何页面上时,使用链接工作正常:路由器安装HomePage,然后PostList触发componentDidMount()并显示刚刚检索到的帖子.

但是当我已经在'/'时,链接什么也没做,因为我已经在'/',但我希望它仍然重新加载我的组件,HomePage以便它可以更新其帖子列表.

我该怎么做 ?

reactjs react-router react-router-v4

3
推荐指数
1
解决办法
4675
查看次数

调用 setState 而不触发重新渲染

我在 React 组件的 中存储了一个 UI 状态state,比如说this.state.receivedElements这是一个数组。每当一个元素被推送到receivedElements. 我的问题是,当数组变空时,我可以不触发渲染吗?
或者一般来说,我可以setState()只调用一次而不重新渲染而重新渲染所有其他时间吗?(有任何选择,变通方法吗?)
我已经通读了这个线程:https : //github.com/facebook/react/issues/8598但没有找到任何东西。

javascript reactjs

1
推荐指数
2
解决办法
2万
查看次数