Helpex - Trao đổi & giúp đỡ Đăng nhập
3

Tôi có một danh sách các dataArrayđối tượng

Tôi muốn liên kết TextInput với một đối tượng cụ thể trong danh sách này.

Mọi thay đổi của văn bản cũng phải thay đổi dataArraytrongstate

Làm thế nào để làm điều đó một cách chính xác? Mã dưới đây không hoạt động

export default class MyClass extends Component {
  constructor(props) {
    super(props);

    this.state = {
      dataArray: this.props.dataArray
    };
  }

  _renderContent = section => {
    let arrayIdx = this.state.dataArray.findIndex(
      x => x.title == section.title
    );
    return (
      <TextInput
        value={this.state.dataArray[arrayIdx].content}
        onChangeText={con =>
          this.setState({
            dataArray: update(this.state.dataArray, {
              arrayIdx: { content: { $set: con } }
            })
          })
        }
      />
    );
  };

  render() {
    return (
      <Container>
        <Content padder>
          <Accordion
            dataArray={this.state.dataArray}
            renderContent={this._renderContent}
          />
        </Content>
      </Container>
    );
  }
}
3 hữu ích 2 bình luận 181 xem chia sẻ
1

Vấn đề là bạn đang cập nhật theo nghĩa đen arrayIdxthay vì chỉ mục mà nó đề cập đến. Bạn cần sử dụng Tên thuộc tính được tính toán như [arrayIdx].

[arrayIdx]: { content: { $set: con } }
1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript reactjs react-native , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading