fix bug: viewValue pre-check to avoid unexpected change