小编And*_*rov的帖子

为什么mapStateToProps和mapDispatchToProps不只是Redux中的一个函数?

有人可以向我解释一下,为什么Redux有两个功能mapStateToProps,mapDispatchToProps并且两个都为容器添加了道具?

定义:

mapStateToProps是一个实用程序,可以帮助您的组件获得更新状态(由其他一些组件更新)

mapDispatchToProps是一个实用程序,它将帮助您的组件触发一个动作事件(可能导致应用程序状态更改的分派操作)

为什么Redux团队选择将其分解为两个映射函数 - 即为什么不只有一个函数mapToProps(state,dispatch,props)同时执行这两个函数?

  • 这只是关注点的分离/更容易理解的原因吗?
  • 是否因为重新绑定的性能问题而mapDispatchToProps为每次更改创建了新功能?具有独立的动作创作绑定功能将有助于避免这项额外的工作?考虑到 mapStateToProps每个州的变化都需要这样做.

例:

const increaseAction = { type: 'increase' }

class Counter extends Component {
  render() {
    const { value, onIncreaseClick } = this.props
    return (
      <div>
        <span>{value}</span>
        <button onClick={onIncreaseClick}>Increase</button>
      </div>
    )
  }
}

function mapDispatchToProps(dispatch) {
  return {
    onIncreaseClick: () => dispatch(increaseAction)
  }
Run Code Online (Sandbox Code Playgroud)

}

在codesandbox上查看此Redux示例

reactjs redux react-redux

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

如何在Delphi中打印JSON?

我正在寻找一个函数,它将一串JSON作为输入,并使用换行符和缩进(制表符)对其进行格式化.

示例:我有输入行:

{"menu": {"header": "JSON viewer", "items": [{"id": "Delphi"},{"id": "Pascal", "label": "Nice tree format"}, null]}}
Run Code Online (Sandbox Code Playgroud)

并希望以文本形式获得可读结果:

{
   "menu":{
      "header":"JSON viewer",
      "items":[
       {
         "id":"Delphi"
       },
       {
         "id":"Pascal",
         "label":"Nice tree format"
       },
       null
      ]
   }
}
Run Code Online (Sandbox Code Playgroud)

我发现了许多PHP和C#的例子,但不是Delphi.有人可以帮助这样的功能吗?

更新 - 使用SuperObject的解决方案:

function FormatJson (InString: WideString): string; // Input string is "InString"
var
  Json : ISuperObject;
begin
  Json := TSuperObject.ParseString(PWideChar(InString), True);
  Result := Json.AsJson(true, false); //Here comes your result: pretty-print JSON
end;
Run Code Online (Sandbox Code Playgroud)

delphi formatting json pascal pretty-print

7
推荐指数
4
解决办法
8145
查看次数

Android中搜索栏的自定义拇指

我想为seekbar创建一个自定义拇指,如下所示:

在此输入图像描述

一种解决方案可以是这一种,其中png图片用于绘制拇指.

我认为应该可以只使用xml,因为它与这个拇指非常相似:

thumb.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <size android:height="30dp" android:width="30dp"/>
    <stroke android:width="18dp" android:color="#882EA5DE"/>
    <solid android:color="#2EA5DE" />
    <corners android:radius="1dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

只需要添加第二个边框(周围的白色笔划),这样我就可以跳过来管理不同屏幕分辨率的所有图片(hdpi/mdpi/xhdpi/xxhdpi).

我尝试了不同的组合形状"椭圆形"和"环形",但无法得到所需的结果.你怎么能做到的?

android seekbar custom-selectors

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

在欧芹中替换“此字段为必填”消息,而无需重复

根据文档,我可以这样做:

<input data-parsley-required-message="this field is required" />
Run Code Online (Sandbox Code Playgroud)

但这需要为每个输入重复数据欧芹所需的消息。我只想在一个地方更改消息,是否可以不编写 自定义验证

有用于更新错误消息的 API :

updateError(name, {message: , assert: , updateClass: true});
Run Code Online (Sandbox Code Playgroud)

但是我无法在window.Parsley上找到方法“ updateError”,并且不清楚我是否可以为“必需消息”验证提供名称的“声明”的含义。

parsley.js

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