我正在尝试升级此博客文章中显示的示例

https://medium.com/@mitch_23203/the-exact-same-app-in-hyperstack-7f281cef46ca

使用诸如后续博客文章之类的超级堆栈模型,但这是行不通的。

这是更改后的代码:

class TodoIndex < HyperComponent

  def create_new_todo_item
    Todo.create(title: @todo)
    @title = nil
  end

  render(DIV, class: 'ToDo') do
    IMG(class: 'Logo', src: 'assets/logo.png', alt: 'Hyperstack Logo')
    H1(class: 'ToDo-Header') { 'Hyperstack To Do' }
    DIV(class: 'ToDo-Container') do
      DIV(class: 'ToDo-Content') do
        Todo.each do |item|
          TodoItem(key: item, item: item.title)
          .on(:delete_item) { item.destroy }
        end
      end
      DIV do
        INPUT(type: :text, value: @title)
        .on(:change) { |e| mutate @title = e.target.value }
        .on(:enter) { create_new_todo_item }
        BUTTON(class: 'ToDo-Add') { '+' }
        .on(:click) { create_new_todo_item }
      end
    end
  end
end


一切似乎都正常,并且保存了新的Todo,但属性为nil。就像标题没有保存一样。

最佳答案

它应该是:

def create_new_todo_item
  Todo.create(title: @title) # not @todo
  @title = nil
end


您将titleTodo设置为其状态值(@todo)...

10-05 20:55
查看更多