导航

    Taro 社区

    Taro

    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    • 话题
    • 热门
    • 群组
    1. 主页
    2. zicjin
    Z
    • 资料
    • 关注
    • 粉丝
    • 主题
    • 帖子
    • 最佳
    • 群组

    zicjin

    @zicjin

    0
    声望
    2
    帖子
    1362
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    zicjin 关注

    zicjin 发布的帖子

    • hook组件的props数组成员无法正常更新渲染

      最简化demo:
      https://github.com/zicjin/taro-test
      使用标准项目新建流程。typescript,无css预处理。

      export default function Shelves(props) {
        const { specs = [] } = props
      
        // const specs = [{
        //   'id': 482,
        //   'detail': [],
        //   'price': 30,
        //   'platformPrice': 10,
        //   'profit': 20,
        //   'marketPrice': 25,
        //   'stock': 480,
        //   'commissionRate': null
        // }]
      
        const [profits, setProfits] = useState(specs.map(s => ({
          specId: s.id,
          profit: 0
        })))
      
        const setProfit = (e, i) => {
          profits[i].profit = +e.detail.value
          setProfits([...profits])
        }
      
        return (
          <View className='shelves' style={{ marginBottom: '100px' }}>
            {specs.map((s, i) => <View key={i}>
              <Input
                type='number'
                value={profits[i].profit}
                onInput={e => { setProfit(e, i) }}
              />
      
              {/* confuse: 无法移除 toString() */}
              <View style={{ marginTop: '20px' }}>{profits[i].profit}</View>
              <View>{profits[i].profit.toString()}</View>
      
            </View>)}
          </View>
        )
      }
      

      当我更改input值,“profits[i].profit”无法正常更新。以下情况可正常更新:

      1. 加上toString()即可正常。
      2. 使用组件内部变量代替 props.specs 即可正常
      3. props.specs 更换为object,修改useState(specs.map... 即可正常
      4. 纯react应用也没有问题:https://codesandbox.io/s/jolly-wescoff-1y633?fontsize=14&hidenavigation=1
      发布在 Taro
      Z
      zicjin
    • RE: 请问如何获得微信富文本 Editor 的实例

      请问这个问题有没有人解决过?

      发布在 微信小程序
      Z
      zicjin