рдПрдХ рдмрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬреЛ рдирд╣реАрдВ рдЦреЗрд▓рддрд╛ рд╣реИ

10 рдЕрдХреНрдЯреВрдмрд░, 2018 рдХреЛ, рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рд╣рдо рдЗрд╕рд╕реЗ рдкреНрд░рд╕рдиреНрди рдФрд░ рдЧреМрд░рд╡рд╛рдиреНрд╡рд┐рдд рд╣реИрдВред

рд▓реЗрдХрд┐рди рдбрд░рд╛рд╡рдиреА рдЪреАрдЬ рд╣реИ: рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдЪрд╛рдирдХ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред


рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП 10,000 рдХреНрд░реИрд╢

рд╣рдорд╛рд░рд╛ рд╕рдВрддрд░реА рдХреНрд░реИрд╢ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдкрд╛рдЧрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдореЗрдВ JSApplicationIllegalArgumentException Error while updating property 'left' in shadow node of type: RCTView" рддреНрд░реБрдЯрд┐ рдЬреИрд╕реА рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, JSApplicationIllegalArgumentException Error while updating property 'left' in shadow node of type: RCTView" ред

рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреА? рд╣рдо рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирдП рд░рд┐рд▓реАрдЬ рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред

рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдмрд▓реНрдХрд┐ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓рдЧрддреА рд╣реИрдВ, рд╡реЗ рдЧреБрдгреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдпреЛрдЬрди рдкрд░ рдкрдбрд╝рдиреЗ рд▓рдЧрддреА рд╣реИрдВ рдФрд░ рдЫрд╛рдпрд╛ рдиреЛрдбреНрд╕ рдЯрд╛рдЗрдк рдХрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рддреАрди рд╣реИрдВ:

  • Error while updating property 'paddingTop' in shadow node of type: RCTView
  • Error while updating property 'height' in shadow node of type: RCTImageView
  • Error while updating property 'fill' of a view managed by: RNSVGPath

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдВрддрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╣реЛрддреА рд╣реИред


рдПрдВрдбреНрд░реЙрдЗрдб 8.0.0 рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд░реИрд╢ рдХреНрд░реИрд╢ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдзрд╛рд░ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ

рдЪрд▓реЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЦреЗрд▓рддреЗ рд╣реИрдВ!


рддреЛ, рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓рд╛ рдХрджрдо рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рд╣реИ, рд╣реИ рдирд╛? рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдВрддрд░реА рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЯрд╛-рдПрдХ-рдПрдХ, рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ ...



рд╣рдореНрдо, рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ - рдмреВрдо, рдПрдХ рджреБрд░реНрдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИред

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЫрд╣ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рдмрд╛рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред рдХреЛрдИ рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЗрд╡ рдореЛрдб рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЦреЗрд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдареАрдХ рд╣реИ, рдпрд╣ рд╡реНрдпрд░реНрде рд▓рдЧрддрд╛ рд╣реИред рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдЕрднреА рднреА рдХрд╛рдлреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВ рдФрд░ 10% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 10 рдореЗрдВ рд╕реЗ 1 рдореМрдХрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЗрд╕ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ ...


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВред рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдирд┐рд╢рд╛рдиред

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдкрд╣рд▓реЗ рдПрдХ рд▓реЗрддреЗ рд╣реИрдВ:

 java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1 at android.support.v4.util.Pools$SimplePool.release(Pools.java:116) at com.facebook.react.bridge.DynamicFromMap.recycle(DynamicFromMap.java:40) at com.facebook.react.uimanager.LayoutShadowNode.setHeight(LayoutShadowNode.java:168) at java.lang.reflect.Method.invoke(Method.java) ... java.lang.reflect.InvocationTargetException: null at java.lang.reflect.Method.invoke(Method.java) ... com.facebook.react.bridge.JSApplicationIllegalArgumentException: Error while updating property 'height' in shadow node of type: RNSVGSvgView at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateShadowNodeProp(ViewManagersPropertyCache.java:113) ... 

рддреЛ рд╕рдорд╕реНрдпрд╛ android/support/v4/util/Pools.java ред

рд╣рдореНрдо, рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╕рдкреЛрд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░реЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдХреЛрдИ рднреА рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬреЛ


рддреНрд░реБрдЯрд┐ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдЦреЛрдЬрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдирдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЛ рджреЗрд╢реА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рджреЛ рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдПрдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ:

  • рд╣рдордиреЗ рдиреЗрдЯрд┐рд╡ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╣рдордиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-svg рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдПрд╕рд╡реАрдЬреА рдШрдЯрдХреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдЕрдкрд╡рд╛рдж рдереЗ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣реА рдРрд╕рд╛ рд╣реЛред

рд╣рдо рдЗрд╕ рд╕рдордп рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд░рдгрдиреАрддрд┐ рд╣реИ:

  1. рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд░реЛрд▓ рдХрд░реЗрдВред рдЗрд╕реЗ 10% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрдиреЗ рд░рд╣рдиреЗ рдкрд░ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдпрд╛ рдЦрдВрдбрди рдХрд░рддреЗ рд╣реИрдВред


    рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ рдЪреБрдиреЗрдВ? рдмреЗрд╢рдХ, рдЖрдк рдПрдХ рд╕рд┐рдХреНрдХрд╛ рдЯреЙрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ?


    рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪреЗрдВ


    рдЖрдЗрдП рдкрд┐рдЫрд▓реЗ рдЯреНрд░реЗрд╕ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╢рд╛рдпрдж рдЗрд╕рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

     /** * Simple (non-synchronized) pool of objects. * * @param The pooled type. */ public static class SimplePool implements Pool { private final Object[] mPool; private int mPoolSize; ... @Override public boolean release(T instance) { if (isInPool(instance)) { throw new IllegalStateException("Already in the pool!"); } if (mPoolSize < mPool.length) { mPool[mPoolSize] = instance; mPoolSize++; return true; } return false; } 

    рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рдереАред рддреНрд░реБрдЯрд┐ java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1 java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1 рдорддрд▓рдм рд╣реИ рдХрд┐ mPool 10 рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ, рд▓реЗрдХрд┐рди mPoolSize=-1 ред

    рдареАрдХ рд╣реИ, mPoolSize=-1 рдХреИрд╕реЗ mPoolSize=-1 ? рдЙрдкрд░реЛрдХреНрдд recycle рд╡рд┐рдзрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, mPoolSize рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди SimplePool рдХреНрд▓рд╛рд╕ рдХрд╛ acquire рддрд░реАрдХрд╛ рд╣реИ:

     public T acquire() { if (mPoolSize > 0) { final int lastPooledIndex = mPoolSize - 1; T instance = (T) mPool[lastPooledIndex]; mPool[lastPooledIndex] = null; mPoolSize--; return instance; } return null; } 

    рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ mPoolSize рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ mPoolSize=0 рд╕рд╛рде рдЗрд╕реЗ рдХрдо рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ mPoolSize > 0 ?

    рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, if рдпрд╣ рд╢рд░реНрдд рд╣реИ, рддреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!

    рдЕрдВрдд рдореЗрдВ, рдПрдХ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди!



    DynamicFromMap рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП SimplePool ред

     private static final Pools.SimplePool<DynamicFromMap> sPool = new Pools.SimplePool<>(10); 

    рдзреНрдпрд╛рди рд╕реЗ рд╕реЗрдЯ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкреНрд▓реЗ рдмрдЯрди рдХреЗ рдХрдИ рджрд╕рд┐рдпреЛрдВ рдХреНрд▓рд┐рдХ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ mqt_native_modules рдереНрд░реЗрдбреНрд╕ SimplePool.acquire рдФрд░ SimplePool.release рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдШрдЯрдХ рдХреА рд╢реИрд▓реА рдЧреБрдгреЛрдВ (рдШрдЯрдХ width рдЧреБрдг рдХреЗ рдиреАрдЪреЗ) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



    рд▓реЗрдХрд┐рди рд╡реЗ рднреА рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдореБрдЦреНрдп рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪрд╛ рд░рд╣реЗ рд╣реИрдВ!



    рдКрдкрд░, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдореЗрдВ fill рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ react-native-svg рдШрдЯрдХ рдХреЗ рд▓рд┐рдП! рджрд░рдЕрд╕рд▓, рджреЗрд╢реА svg рдПрдирд┐рдореЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд╛рддрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде react-native-svg рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдиреЗ DynamicFromMap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

    рдФрд░-рдФрд░-рдФрд░ ... рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди DynamicFromMap SimplePool рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред "рдереНрд░реЗрдб рд╕реЗрдл," рдХрд╣рддреЗ рд╣реИрдВ?

    рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛, рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рд╕рд╛


    рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

    рджреВрд╕рд░реА рдУрд░, рдЬрд╛рд╡рд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдпрд╛ рдмрд╣реБрд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХрдИ рдзрд╛рдЧреЗ рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рднреАрддрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрднреА-рдХрднреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

    рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ: рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдП рдФрд░ рдмреА рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢реЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИрдВ:

    • рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдкрдврд╝реЗрдВ;
    • рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐;
    • рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЛред


    рд╕реНрдЯреНрд░реАрдо рдмреА рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдорд╛рди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ 19 рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░рдгреЛрдВ рдХреА рдЙрдореНрдореАрдж рдереАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо 18 рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╡рд╛рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдПрдХ рджреМрдбрд╝ рд╕реНрдерд┐рддрд┐ рдХрд╣рд▓рд╛рддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╣рд░ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж, рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдереНрд░реЗрдб рдмреА рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рдо рд╣реИ, рдЬреЛ рдереНрд░реЗрдб рдП рдХреЛ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдФрд░ рдЕрдХреНрд╖рдорддрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

    рдпрджрд┐ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рдмрд┐рдирд╛ рдХрдИ рдереНрд░реЗрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рде рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдЬрдм рдПрдХ рдереНрд░реЗрдб рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рдереНрд░реЗрдб рдХреЛ рдЗрд╕ рддрддреНрд╡ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕реЗ рдПрдЯрдореЙрд╕рд┐рдЯреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрджрд┐ рдЕрджреНрдпрддрди рдЪрдХреНрд░ рдкрд░рдорд╛рдгреБ рдереЗ, рддреЛ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдереНрд░реЗрдб рдмреА рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдереНрд░реЗрдб рдП рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЦреБрдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

    рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:



    рдХреНрдпреЛрдВрдХрд┐ DynamicFromMap рдореЗрдВ DynamicFromMap рдПрдХ рд╕реНрдереИрддрд┐рдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ DynamicFromMap рдХреЙрд▓ рдХрдИ рдереНрд░реЗрдб рд╕реЗ рдЖрддреА рд╣реИ, рдЬрдмрдХрд┐ SimplePool рдореЗрдВ acquire рд╡рд┐рдзрд┐ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ SimplePool ред

    рдКрдкрд░ рдЪрд┐рддреНрд░рдг рдореЗрдВ, рдереНрд░реЗрдб рдП рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ mPoolSize (рдЬреЛ рдереНрд░реЗрдб рдмреА рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЬрдмрдХрд┐ рдереНрд░реЗрдб рдмреА рднреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рднреА рд╕рдЪ mPoolSize рд╣реИ ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ mPoolSize рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк "рдЕрд╕рдВрднрд╡" рдореВрд▓реНрдп рд╣реЛрдЧрд╛ред

    рд╕реБрдзрд╛рд░


    рд╕реБрдзрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд▓ рдЕрдиреБрд░реЛрдз рдкрд╛рдпрд╛, рдЬреЛ рдЕрднреА рддрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ - рдФрд░ рдпрд╣ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



    рдлрд┐рд░ рд╣рдордиреЗ рдпреВрдЬрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреЗрд╢ рдХрд┐рдпрд╛ред рджреБрд░реНрдШрдЯрдирд╛ рдЕрдВрдд рдореЗрдВ рддрдп рд╣реЛ рдЧрдИ рд╣реИ, рдЪреАрдпрд░реНрд╕!


    рддреЛ, рдЬреЗрдирд┐рдХ рдбреБрдкреНрд▓реЗрд╕рд┐рд╕ (рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЛрд░ рдореЗрдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛) рдФрд░ рдорд╛рдЗрдХрд▓ рд╕реИрдВрдб ( react-native-svg рдЕрдиреБрдЪрд░) рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ 0.57 рдХреЗ рдЕрдЧрд▓реЗ рдорд╛рдореВрд▓реА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреИрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИ ред

    рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЙрддрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рдерд╛ред рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдмрдЧрд░ рдФрд░ рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд░рдЦрд╛ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рднреА рдЗрд╕ рдХрд╣рд╛рдиреА рд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╕реАрдЦрд╛ рд╣реЛрдЧрд╛!

Source: https://habr.com/ru/post/hi432426/


All Articles